home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / inter54a.zip / INTERRUP.A < prev    next >
Text File  |  1997-06-29  |  344KB  |  8,758 lines

  1. Interrupt List            Release 54        Last change 29jun97
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3. --------!---FILELIST-------------------------
  4. Please redistribute the following files unmodified as a group, in a quartet of
  5. archives named INTER54A through INTER54D (preferably the original authenticated
  6. PKZIP archives):
  7.     INTERRUP.1ST    the read-me file, containing credits, availability info
  8.     INTERRUP.A    INT 00 through INT 12     \
  9.     INTERRUP.B    INT 13 through INT 15/11   \
  10.     INTERRUP.C    INT 15/12 through INT 16/6E \
  11.     INTERRUP.D    INT 16/6F through INT 1A/B1  \
  12.     INTERRUP.E    INT 1A/B2 through INT 21/43   \      total 2286 pages at
  13.     INTERRUP.F    INT 21/44 through INT 21/5E    \  60 lines per page,
  14.     INTERRUP.G    INT 21/5F through INT 21/E2    \ 2437 with INTPRINT -p
  15.     INTERRUP.H    INT 21/E3 through INT 21/F1     >(8484 entries)
  16.     INTERRUP.I    INT 21/F2 through INT 29    / (3682 tables)
  17.     INTERRUP.J    INT 2A through INT 2F/26       /
  18.     INTERRUP.K    INT 2F/27 through INT 2F/BF   /
  19.     INTERRUP.L    INT 2F/C0 through INT 32     /
  20.     INTERRUP.M    INT 33 through INT 60        /
  21.     INTERRUP.N    INT 61 through INT 66       /
  22.     INTERRUP.O    INT 67 through INT 7D      /
  23.     INTERRUP.P    INT 7E through INT FF     /
  24.     INTERRUP.PRI    a brief introduction to interrupts
  25.     INTPRINT.COM    a simple formatter that also generates a list summary
  26.     INTPRINT.DOC    instructions for INTPRINT
  27.     OVERVIEW.LST    brief listing of major uses of each interrupt
  28.     86BUGS.LST    a listing of CPU bugs and undocumented features
  29.     BIBLIO.LST    bibliography of information sources for the list
  30.     CMOS.LST    a description of the CMOS RAM data bytes
  31.     FARCALL.LST    APIs available through FAR CALLs
  32.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  33.     MEMORY.LST    format of the BIOS data area
  34.     OPCODES.LST    a listing of recent and undocumented CPU instructions
  35.     PORTS.LST    a listing of I/O ports
  36.     CATEGORY.KEY    descriptions of divider-line category letters
  37.     COMBINE.COM    combine the pieces of the list into a single file
  38.     COMBINE.DOC    documentation for COMBINE
  39. The following files should be distributed in an archive called INTER54E:
  40.     86BUGSnn.ZIP    programs to test for CPU bugs
  41.     COMBINE.ASM    source code for COMBINE.COM
  42.     INT.*        invoke interrupts from commandline
  43.     INTHLP??.ZIP    Interrupt Helper viewer for the interrupt list
  44.     INTLIST.E    Epsilon extension for handling list
  45.     INTPRINT.C    source code for INTPRINT
  46.     INTSUM??.ZIP    interrupt list browser (Interrupt Summary)
  47.     IVIEW*.ZIP    another interrupt list browser
  48. The following should be distributed in an archive called INTER54F:
  49.     INT2RTF.ZIP    Slava Gostrenko's Windows Help converter
  50.     INT2WHLP.ZIP    convert list into Windows Help database
  51.     INTERRUP.ICO    icon for interrupt list
  52.     HINTSRCH.ZIP    WinHelp DLL for full-text searches of interrupt list
  53.     WH_ED*.ZIP    WinHelp-file editor
  54. Finally, the following should be distributed in an archive called INTER54G:
  55.     IL2ME???.ZIP    convert list into Multi-Edit help database
  56.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  57.     INT2HLP.ZIP    convert list into QuickHelp database
  58.     INT2IPF.ZIP    convert list into OS/2 .IPF database
  59.     INT2QH.*    program to convert list into QuickHelp database
  60.     INT2TPH.ZIP    convert to Turbo/Borland Pascal help file (.TPH)
  61.     INTHELP.*    convert list into TurboPower GUIDE database
  62.     RB2NG???.ZIP    convert list into Norton Guides database
  63. --------!---CONTACT_INFO---------------------
  64. If you notice any mistakes or omissions, please let me know!  It is only with
  65. YOUR help that the list can continue to grow at the current rate.  Please send
  66. all changes to me rather than distributing a modified version of the list.
  67.  
  68. Please read the file INTERRUP.1ST before asking me any questions.  You may find
  69. that they have already been addressed.
  70.  
  71.      Ralf Brown
  72.  
  73. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  74. UUCP: {uunet,harvard}!pobox.com!ralf
  75. FIDO: Ralf Brown 1:129/26.1
  76.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  77.     unless you address it to me)
  78. CIS:  >INTERNET:ralf@pobox.com
  79.  
  80. I reply to all e-mail submissions and inquiries, but some of my replies bounce
  81. because of bad return paths.  If you don't get a response from me within a
  82. reasonable period of time, send it again with a better return path (many
  83. mailers are improperly configured and do not produce a valid From: address).
  84. --------!---Note-----------------------------
  85. See INTERRUP.1ST for the key to system abbreviations and a list of the
  86. trademarks mentioned here.
  87. --------!---DISCLAIMER-----------------------
  88. DISCLAIMER:  THIS MATERIAL IS PROVIDED "AS IS".     I verify the information
  89. contained in this list to the best of my ability, but I cannot be held
  90. responsible for any problems caused by use or misuse of the information,
  91. especially for those functions not officially documented.  If it is marked
  92. "internal" or undocumented, you should check it carefully to make sure it
  93. works the same way in your version of the software (and please let me know
  94. whether or not it works the same way).    Information marked with "???" is
  95. known to be incomplete or guesswork.
  96. --------!---FLAGS----------------------------
  97. The use of -> instead of = signifies that the indicated register or register
  98. pair contains a pointer to the specified item, rather than the item itself.
  99. One or more letters may follow the interrupt number; they have the following
  100. meanings:  U - undocumented function, u - partially documented function,
  101. P - available only in protected mode, R - available only in real or V86 mode,
  102. C - callout or callback (usually hooked rather than called),
  103. O - obsolete (no longer present in current versions)
  104. --------!---CATEGORIES-----------------------
  105. The ninth column of the divider line preceding an entry usually contains a
  106. classification code (the entry has not been classified if that character is
  107. a dash).  The codes currently in use are:
  108.     A - applications, a - access software (screen readers, etc),
  109.     B - BIOS, b - vendor-specific BIOS extensions,
  110.     C - CPU-generated, c - caches/spoolers,
  111.     D - DOS kernel, d - disk I/O enhancements,
  112.     E - DOS extenders, e - electronic mail, F - FAX,
  113.     f - file manipulation, G - debuggers/debugging tools, g - games,
  114.     H - hardware, h - vendor-specific hardware,
  115.     I - IBM workstation/terminal emulators, i - system info/monitoring,
  116.     J - Japanese, j - joke programs,
  117.     K - keyboard enhancers, k - file/disk compression,
  118.     l - shells/command interpreters,
  119.     M - mouse/pointing device, m - memory management,
  120.     N - network, n - non-traditional input devices,
  121.     O - other operating systems,
  122.     P - printer enhancements, p - power management,
  123.     Q - DESQview/TopView and Quarterdeck programs,
  124.     R - remote control/file access, r - runtime support,
  125.     S - serial I/O, s - sound/speech,
  126.     T - DOS-based task switchers/multitaskers, t - TSR libraries
  127.     U - resident utilities, u - emulators,
  128.     V - video, v - virus/antivirus,
  129.     W - MS Windows,
  130.     X - expansion bus BIOSes, x - non-volatile config storage
  131.     y - security, * - reserved (and not otherwise classified)
  132. --------C-00---------------------------------
  133. INT 00 C - CPU-generated - DIVIDE ERROR
  134. Desc:    generated if the divisor of a DIV or IDIV instruction is zero or the
  135.       quotient overflows the result register; DX and AX will be unchanged.
  136. Notes:    on an 8086/8088, the return address points to the following instruction
  137.     on an 80286+, the return address points to the divide instruction
  138.     an 8086/8088 will generate this interrupt if the result of a division
  139.       is 80h (byte) or 8000h (word)
  140. SeeAlso: INT 04
  141. --------G-00---------------------------------
  142. INT 00 - Zenith - ROM DEBUGGER
  143. Desc:    invokes the ROM Debugger when at the BIOS level; equivalent to
  144.       pressing Ctrl-Alt-Ins on booting.
  145. Note:    since DOS revectors INT 00, it is necessary to restore this vector to
  146.       its original ROM BIOS value in order to invoke the debugger once DOS
  147.       loads
  148. SeeAlso: INT 03"Columbia"
  149. --------C-01---------------------------------
  150. INT 01 C - CPU-generated - SINGLE STEP
  151. Desc:    generated after each instruction if TF (trap flag) is set; TF is
  152.       cleared on invoking the single-step interrupt handler
  153. Notes:    interrupts are prioritized such that external interrupts are invoked
  154.       after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  155.       first instruction of the handler executes
  156.     used by debuggers for single-instruction execution tracing, such as
  157.       MS-DOS DEBUG's T command
  158. SeeAlso: INT 03"CPU"
  159. --------C-01---------------------------------
  160. INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
  161. Desc:    generated by the CPU on various occurrences which may be of interest
  162.       to a debugger program
  163. Note:    events which may trigger the interrupt:
  164.       Instruction address breakpoint fault - will return to execute inst
  165.       Data address breakpoint trap - will return to following instruction
  166.       General detect fault, debug registers in use
  167.       Task-switch breakpoint trap
  168.       undocumented 386/486 opcode F1h - will return to following instruc
  169. SeeAlso: INT 03"CPU"
  170. --------H-02---------------------------------
  171. INT 02 C - external hardware - NON-MASKABLE INTERRUPT
  172. Desc:    generated by the CPU when the input to the NMI pin is asserted
  173. Notes:    return address points to start of interrupted instruction on 80286+
  174.     on the 80286+, further NMIs are disabled until the next IRET
  175.       instruction, but one additional NMI is remembered by the hardware
  176.       and will be serviced after the IRET instruction reenables NMIs
  177.     maskable interrupts may interrupt the NMI handler if interrupts are
  178.       enabled
  179.     although the Intel documentation states that this interrupt is
  180.       typically used for power-failure procedures, it has many other uses
  181.       on IBM-compatible machines:
  182.         Memory parity error: all except Jr, CONV, and some machines
  183.                   without memory parity
  184.         Breakout switch on hardware debuggers
  185.         Coprocessor interrupt: all except Jr and CONV
  186.         Keyboard interrupt: Jr, CONV
  187.         I/O channel check: CONV, PS50+
  188.         Disk-controller power-on request: CONV
  189.         System suspend: CONV
  190.         Real-time clock: CONV
  191.         System watch-dog timer, time-out interrupt: PS50+
  192.         DMA timer time-out interrupt: PS50+
  193.         Low battery: HP 95LX
  194.         Module pulled: HP 95LX
  195. --------m-02----SI0714-----------------------
  196. INT 02 U - STB RAPIDMAP.SYS - ???
  197.     SI = 0714h
  198.     ES:DI -> ???
  199. Return: ???
  200. SeeAlso: INT 67/AX=6100h"STB",PORT 00E1h"STB"
  201. --------C-03---------------------------------
  202. INT 03 C - CPU-generated - BREAKPOINT
  203. Desc:    generated by the one-byte breakpoint instruction (opcode CCh)
  204. Notes:    used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
  205.       command
  206.     also used by Turbo Pascal versions 1,2,3 when {$U+} specified
  207.     return address points to byte following the breakpoint instruction
  208.     called by Novell DOS 7 EMM386 after displaying an exception error
  209.       message (GPF, illegal opcodes, etc.) and before waiting for user
  210.       input
  211.     called by QEMM-386 if the user presses 'I' (undocumented) when prompted
  212.       after an exception error message
  213. SeeAlso: INT 01"CPU"
  214. --------G-03---------------------------------
  215. INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
  216. Desc:    invokes the ROM Debugger if INT 03 has not been revectored; equivalent
  217.       to pressing Esc on booting.
  218. SeeAlso: INT 00"Zenith",INT 03"Realia"
  219. --------G-03---------------------------------
  220. INT 03 - Realia COBOL - DEBUGGER SUPPORT
  221. Note:    Realia COBOL checks for a signature eight bytes prior to the interrupt
  222.       handler when it starts up
  223. BUG:    if the offset of the INT 03 vector is less than 8, the compiler and
  224.       all executables generated by it will crash the system
  225. SeeAlso: INT 03"Columbia"
  226. --------G-03---------------------------------
  227. INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE
  228.     STACK:    DWORD    selector
  229.         DWORD    offset of ASCIZ message to display
  230. Notes:    the INT 03h instruction which invokes the debugger must be followed by
  231.       a JMP SHORT and the signature string "WVIDEO"
  232.     to check whether this interface is available, define a public byte
  233.       variable named ___WD_Present, which the debugger will set to 01h
  234.       before running the program
  235. SeeAlso: AX=0910h
  236. --------U-03---------------------------------
  237. INT 03 - DTown Utilities - POP UP
  238. Program: DTown Software Development's DTown Utilities contains various tools
  239.       which are useful to programmers, such as a memory viewer and
  240.       disassembler
  241. Note:    DTU pops up on INT 03 (if not hooked by a debugger) to allow the
  242.       user to inspect memory or code when the machine crashes; various
  243.       memory managers will invoke INT 03 when displaying a CPU exception
  244.       error message (either automatically or when the user presses a
  245.       particular key)
  246. SeeAlso: INT 2D/AL=20h"DTown"
  247. --------G-030910-----------------------------
  248. INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
  249.     AX = 0910h
  250.     SI = magic value 4647h ('FG')
  251.     DI = magic value 4A4Dh ('JM')
  252.     DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
  253. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  254. SeeAlso: INT 03"WVIDEO"
  255. --------G-030911-----------------------------
  256. INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
  257.     AX = 0911h
  258.     SI = magic value 4647h ('FG')
  259.     DI = magic value 4A4Dh ('JM')
  260.     DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
  261. Return: nothing
  262. SeeAlso: AX=0912h,AX=0913h
  263. --------G-030912-----------------------------
  264. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
  265.     AX = 0912h
  266.     SI = magic value 4647h ('FG')
  267.     DI = magic value 4A4Dh ('JM')
  268. Return: BH = entry number of last breakpoint set
  269.     BL = type of last breakpoint set (see #0001)
  270.     DH = entry number of last breakpoint to be triggered
  271.     DL = type of last triggered breakpoint (see #0001)
  272. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  273. SeeAlso: AX=0911h,AX=0913h,AX=0914h
  274.  
  275. (Table 0001)
  276. Values for Soft-ICE breakpoint type:
  277.  00h    BPM (breakpoint register types)
  278.  01h    I/O
  279.  02h    INTerrupt
  280.  03h    BPX (INT 03-style breakpoint)
  281.  04h    reserved
  282.  05h    range
  283. --------G-030913-----------------------------
  284. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
  285.     AX = 0913h
  286.     SI = magic value 4647h ('FG')
  287.     DI = magic value 4A4Dh ('JM')
  288.     DS:DX -> breakpoint structure (see #0002)
  289. Return: AX = status
  290.         00h successful
  291.         BX = breakpoint number
  292.         03h breakpoint table full
  293.         06h memory limit error
  294.         07h I/O limit error
  295.         09h range limit error
  296.         16h duplicate breakpoint
  297. SeeAlso: AX=0911h,AX=0912h,AX=0914h
  298.  
  299. Format of Soft-ICE breakpoint structure:
  300. Offset    Size    Description    (Table 0002)
  301.  00h    BYTE    breakpoint type (see #0003)
  302.  01h    DWORD    breakpoint address 1
  303.         (lower range limit for memory BPs,
  304.         interrupt number for interrupt BPs,
  305.         address of BP for execution BPs,
  306.         I/O address (only word)    for I/O BPs)
  307.  05h    DWORD    breakpoint address 2
  308.         (upper range limit for memory BPs,
  309.         optional value to check for for interrupt BPs,
  310.         overlay number (0 = root) for execution BPs)
  311.  09h    DWORD    breakpoint address 3
  312.  0Dh    BYTE    breakpoint mode 1 (see #0004)
  313.         (for interrupt BPs = register to check
  314.             00h     no value checking
  315.             01h     check AL
  316.             02h     check AH
  317.             03h     check AX)
  318.  0Eh    BYTE    breakpoint mode 2 (see #0004)
  319.  0Fh    BYTE    breakpoint size (00h byte, 01h word, 03h dword)
  320.  10h    BYTE    breakpoint pass count before program stop
  321.  11h    BYTE    breakpoint state
  322. Note:    all unused fields should contain zeros
  323.  
  324. (Table 0003)
  325. Values for Soft-ICE breakpoint type:
  326.  00h    memory location
  327.  01h    memory range
  328.  03h    I/O
  329.  04h    interrupt
  330.  05h    execution break
  331.  
  332. (Table 0004)
  333. Values for Soft-ICE breakpoint mode:
  334.  01h    read
  335.  02h    write
  336.  04h    execution
  337. --------G-030914-----------------------------
  338. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
  339.     AX = 0914h
  340.     SI = magic value 4647h ('FG')
  341.     DI = magic value 4A4Dh ('JM')
  342.     BX = breakpoint number (returned by AX=0913h)
  343. Return: BX = ???
  344. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  345. SeeAlso: AX=0912h,AX=0913h
  346. --------C-04---------------------------------
  347. INT 04 C - CPU-generated - INTO DETECTED OVERFLOW
  348. Desc:    the INTO instruction will generate this interrupt if OF (Overflow Flag)
  349.       is set; otherwise, INTO is effectively a NOP
  350. Note:    may be used for convenient overflow testing (to prevent errors from
  351.       propagating) instead of JO or a JNO/JMP combination
  352. SeeAlso: INT 00"CPU"
  353. --------B-05---------------------------------
  354. INT 05 - PRINT SCREEN
  355. Desc:    dump the current text screen to the first printer
  356. Notes:    normally invoked by the INT 09 handler when PrtSc key is pressed, but
  357.       may be invoked directly by applications
  358.     byte at 0050h:0000h contains status used by default handler
  359.       00h not active
  360.       01h PrtSc in progress
  361.       FFh last PrtSc encountered error
  362.     default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
  363.     since the BOUND instruction also calls INT 05h, but returns control
  364.       to the BOUND instruction, a failed BOUND check will cause an infinite
  365.       loop of PrtScreens unless the INT 05 handler is aware of the problem
  366.       and checks whether the interrupt was invoked by a BOUND instruction
  367. BUG:    some old BIOSes/applications appear to destroy BP on return
  368. SeeAlso: INT 10/AH=12h/BL=20h,INT 4A"Tandy 2000",INT 5E"TI Professional"
  369. SeeAlso: INT 80"Phar Lap"
  370. --------C-05---------------------------------
  371. INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED
  372. Desc:    generated by BOUND instruction when the value to be tested is less than
  373.       the indicated lower bound or greater than the indicated upper bound.
  374. Note:    returning from this interrupt re-executes the failing BOUND instruction
  375. --------P-05454A-----------------------------
  376. INT 05 U - PSPS v2.01 - EJECT PAGE
  377.     AX = 454Ah ('EJ')
  378. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  379.       Technologies
  380. Note:    sends a ^D to the current printer
  381. SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
  382. --------P-054E57-----------------------------
  383. INT 05 U - PSPS v2.01 - SET PARAMETERS
  384.     AX = 4E57h ('NW')
  385.     ES:SI -> 11-byte buffer containing new settings
  386. Return: buffer filled
  387. SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
  388. --------P-055053-----------------------------
  389. INT 05 U - PSPS v2.01 - GET PARAMETERS
  390.     AX = 5053h ('PS')
  391.     ES:SI -> 11-byte buffer for settings
  392. Return: buffer filled
  393. SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
  394. --------P-05554E-----------------------------
  395. INT 05 U - PSPS v2.01 - UNINSTALL
  396.     AX = 554Eh ('UN')
  397. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  398.       Technologies
  399. SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
  400. --------C-06---------------------------------
  401. INT 06 C - CPU-generated (80286+) - INVALID OPCODE
  402. Desc:    this interrupt is generated when the CPU attempts to execute an
  403.       invalid opcode (most protected-mode instructions are considered
  404.       invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  405.       which specifies a register rather than a memory address
  406. Notes:    return address points to beginning of invalid instruction
  407.     with proper programming, this interrupt may be used to emulate
  408.       instructions which do not exist; many 386 BIOSes emulate the 80286
  409.       undocumented LOADALL instruction which was removed from the 80386+
  410.     generated by the 80386+ when the LOCK prefix is used with instructions
  411.       other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
  412.       NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
  413.       not accessing memory.
  414. SeeAlso: INT 0C"CPU",INT 0D"CPU"
  415. --------b-06---------------------------------
  416. INT 06 C - HP 95LX - SLEEP/WAKEUP
  417. Desc:    this interrupt is called just before going into light or deep
  418.       (shutdown) sleep and just after returning from light or deep sleep
  419. SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
  420. --------V-06---------------------------------
  421. INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!)
  422. Desc:    points at graphics data for characters 00h-7Fh of the current font
  423. SeeAlso: INT 43"EGA",INT 44"VIDEO"
  424. --------C-07---------------------------------
  425. INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
  426. Desc:    this interrupt is automatically called if a coprocessor instruction is
  427.       encountered when no coprocessor is installed
  428. Note:    can be used to emulate a numeric coprocessor in software
  429. SeeAlso: INT 09"CPU"
  430. --------H-08---------------------------------
  431. INT 08 C - IRQ0 - SYSTEM TIMER
  432. Desc:    generated 18.2 times per second by channel 0 of the 8254 system timer,
  433.       this interrupt is used to keep the time-of-day clock updated
  434. Notes:    programs which need to be invoked regularly should use INT 1C unless
  435.       they need to reprogram the timer while still keeping the time-of-day
  436.       clock running at the proper rate
  437.     default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
  438.     may be masked by setting bit 0 on I/O port 21h
  439. SeeAlso: INT 1C,INT 4A"SYSTEM",INT 50"DESQview",INT 58"DoubleDOS",INT 70"IRQ8"
  440. SeeAlso: INT 78"GO32",INT D8"Screen Thief"
  441. --------C-08---------------------------------
  442. INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
  443. Desc:    called when multiple exceptions occur on one instruction, or an
  444.       exception occurs in an exception handler
  445. Notes:    called in protected mode if an interrupt above the defined limit of
  446.       the interrupt vector table occurs
  447.     return address points at beginning of instruction with errors or the
  448.       beginning of the instruction which was about to execute when the
  449.       external interrupt caused the exception
  450.     if an exception occurs in the double fault handler, the CPU goes into
  451.       SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  452.       this "triple fault" is a faster way of returning to real mode on
  453.       many 80286 machines than the standard keyboard controller reset
  454. --------H-09---------------------------------
  455. INT 09 C - IRQ1 - KEYBOARD DATA READY
  456. Desc:    this interrupt is generated when data is received from the keyboard.
  457.       This is normally a scan code (from either a keypress *or* a key
  458.       release), but may also be an ACK or NAK of a command on AT-class
  459.       keyboards.
  460. Notes:    this IRQ may be masked by setting bit 1 on I/O port 21h
  461.     if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  462.       INT 15/AH=4Fh after reading the scan code (see #0005) from the
  463.       keyboard and before further processing; all further processing uses
  464.       the scan code returned from INT 15/AH=4Fh
  465.     the default interrupt handler is at F000h:E987h in 100%-compatible
  466.       BIOSes
  467.     the interrupt handler performs the following actions for certain
  468.       special keystrokes:
  469.         Ctrl-Break     clear keyboard buffer, place word 0000h in buffer,
  470.              invoke INT 1B, and set flag at 0040h:0071h
  471.         SysReq     invoke INT 15/AH=85h (SysReq is often labeled SysRq)
  472.         Ctrl-Numlock place system in a tight wait loop until next INT 09
  473.         Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
  474.                destination of the jump at that address)
  475.         Shift-PrtSc     invoke INT 05
  476.         Ctrl-Alt-Plus (HP Vectra) enable keyclick
  477.         Ctrl-Alt-Plus (many clones) set clock speed to high
  478.         Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume
  479.         Ctrl-Alt-Minus (many clones) set clock speed to low
  480.         Ctrl-Alt-SysReq (HP Vectra) generate hard reset
  481.         Ctrl-Alt-S    (many clones) run BIOS setup program
  482.         Ctrl-Alt-Esc (many clones) run BIOS setup program
  483.         Ctrl-Alt-Ins (many clones) run BIOS setup program
  484.         Ctrl-Alt-LeftShift-GrayMinus (some clones) turn off system cache
  485.         Ctrl-Alt-LeftShift-GrayPlus (some clones) turn on system cache
  486.     DR DOS hooks this interrupt to control the cursor shape (underscore/
  487.       half block) for overwrite/insert mode
  488.     DR Multiuser DOS hooks this interrupt for cursor shape control and to
  489.       control whether Ctrl-Alt-Del reboots the current session or the
  490.       entire system
  491. SeeAlso: INT 05"PRINT SCREEN",INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h
  492. SeeAlso: INT 16/AH=00h,INT 16/AH=10h,INT 1B,INT 2F/AX=A901h,INT 4A/AH=00h"TI"
  493. SeeAlso: INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
  494.  
  495. (Table 0005)
  496. Values for keyboard make/break (scan) code:
  497.  01h    Esc         31h    N
  498.  02h    1 !         32h    M
  499.  03h    2 @         33h    , <         63h    F16
  500.  04h    3 #         34h    . >         64h    F17
  501.  05h    4 $         35h    / ?         65h    F18
  502.  06h    5 %         36h    Right Shift     66h    F19
  503.  07h    6 ^         37h    Grey*         67h    F20
  504.  08h    7 &         38h    Alt         68h    F21 (Fn) [*]
  505.  09h    8 *         39h    SpaceBar     69h    F22
  506.  0Ah    9 (         3Ah    CapsLock     6Ah    F23
  507.  0Bh    0 )         3Bh    F1         6Bh    F24
  508.  0Ch    - _         3Ch    F2         6Ch    --
  509.  0Dh    = +         3Dh    F3         6Dh    EraseEOF
  510.  0Eh    Backspace     3Eh    F4
  511.  0Fh    Tab         3Fh    F5         6Fh    Copy/Play
  512.  10h    Q         40h    F6
  513.  11h    W         41h    F7
  514.  12h    E         42h    F8         72h    CrSel
  515.  13h    R         43h    F9         73h    <delta> [*]
  516.  14h    T         44h    F10         74h    ExSel
  517.  15h    Y         45h    NumLock         75h    --
  518.  16h    U         46h    ScrollLock     76h    Clear
  519.  17h    I         47h    Home
  520.  18h    O         48h    UpArrow
  521.  19h    P         49h    PgUp
  522.  1Ah    [ {         4Ah    Grey-
  523.  1Bh    ] }         4Bh    LeftArrow
  524.  1Ch    Enter         4Ch    Keypad 5
  525.  1Dh    Ctrl         4Dh    RightArrow
  526.  1Eh    A         4Eh    Grey+
  527.  1Fh    S         4Fh    End
  528.  20h    D         50h    DownArrow
  529.  21h    F         51h    PgDn
  530.  22h    G         52h    Ins
  531.  23h    H         53h    Del
  532.  24h    J         54h    SysReq        ---non-key codes---
  533.  25h    K                     00h    kbd buffer full
  534.  26h    L         56h    left \| (102-key)
  535.  27h    ; :         57h    F11         AAh    self-test complete
  536.  28h    ' "         58h    F12         E0h    prefix code
  537.  29h    ` ~                     E1h    prefix code
  538.  2Ah    Left Shift     5Ah    PA1         EEh    ECHO
  539.  2Bh    \ |         5Bh    F13 (LWin)     F0h    prefix code (key break)
  540.  2Ch    Z         5Ch    F14 (RWin)     FAh    ACK
  541.  2Dh    X         5Dh    F15 (Menu)     FCh    diag failure (MF-kbd)
  542.  2Eh    C                     FDh    diag failure (AT-kbd)
  543.  2Fh    V                     FEh    RESEND
  544.  30h    B                     FFh    kbd error/buffer full
  545. Notes:    scan codes 56h-E1h are only available on the extended (101/102-key)
  546.       keyboard and Host Connected (122-key) keyboard; scan codes 5Bh-5Dh
  547.       are only available on the 122-key keyboard and the Microsoft Natural
  548.       Keyboard; scan codes 5Eh-76h are only available on the 122-key
  549.       keyboard
  550.     in the default configuration, break codes are the make scan codes with
  551.       the high bit set; make codes 60h,61h,70h, etc. are not available
  552.       because the corresponding break codes conflict with prefix codes
  553.       (code 2Ah is available because the self-test result code AAh is only
  554.       sent on keyboard initialization).  An alternate keyboard
  555.       configuration can be enabled on AT and later systems with enhanced
  556.       keyboards, in which break codes are the same as make codes, but
  557.       prefixed with an F0h scan code
  558.     prefix code E0h indicates that the following make/break code is for a
  559.       "gray" duplicate to a key which existed on the original PC keyboard;
  560.       prefix code E1h indicates that the following make code has no
  561.       corresponding break code (currently only the Pause key generates no
  562.       break code)
  563.     the Microsoft Natural Keyboard sends make codes 5Bh, 5Ch, and 5Dh
  564.       (all with an E0h prefix) for the Left Windows, Right Windows, and
  565.       Menu keys on the bottom row
  566.     the German "Cherry G81-3000 SAD/04" keyboard contains contacts for
  567.       four additional keys, which can be made available by a user
  568.       modification; the three new keys located directly below the cursor
  569.       pad's Delete, End, and PgDn keys send make codes 66h-68h (F19-F21);
  570.       the fourth new key, named <delta>, sends make code 73h
  571.     the SysReq key is often labeled SysRq
  572.     the "Accord" ergonomic keyboard with optional touchpad (no other
  573.       identification visible on keyboard or in owner's booklet) has an
  574.       additional key above the Grey- key marked with a left-pointing
  575.       triangle and labeled "Fn" in the owner's booklet which returns
  576.       scan codes E0h 68h on make and E0h E8h on break
  577. SeeAlso: #0519 at INT 16/AX=6F07h,#2846 at INT 4A/AH=05h
  578. --------C-09---------------------------------
  579. INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
  580. Desc:    called if the coprocessor attempts to access memory outside a segment
  581.       boundary; it may occur at an arbitrary time after the coprocessor
  582.       instruction was issued
  583. Notes:    until the condition is cleared or the coprocessor is reset, the only
  584.       coprocessor instruction which may be used is FNINIT; WAIT or other
  585.       coprocessor instructions will cause a deadlock because the
  586.       coprocessor is still busy waiting for data
  587.     for the 486+, a coprocessor protection error generates an INT 0D
  588. SeeAlso: INT 07"CPU"
  589. --------*-09---------------------------------
  590. INT 09 P - internal hardware - RESERVED BY Intel (80486)
  591. Note:    this exception has been moved to INT 0D
  592. SeeAlso: INT 09"CPU",INT 0D
  593. --------H-0A---------------------------------
  594. INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
  595. Notes:    the TOPS and PCnet adapters use this interrupt request line by default
  596.     DOS 3.2 revectors IRQ2 to a stack-switching routine
  597.     on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  598.       connects to the slave 8259.  The BIOS redirects the interrupt for
  599.       IRQ9 back here.
  600.     under DESQview, only the INT 15h vector and BASIC segment address (the
  601.       word at 0000h:0510h) may be assumed to be valid for the handler's
  602.       process
  603.     many VGA boards do not implement the vertical retrace interrupt,
  604.       including the IBM VGA Adapter where the traces are either cut or
  605.       removed
  606. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  607. --------H-0A---------------------------------
  608. INT 0A C - IRQ2 - Tandy 1000-series HARD DISK
  609. Notes:    this interrupt may be masked by setting bit 2 on I/O port 21h
  610.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  611.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  612.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  613.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  614.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  615.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  616.       interrupt use IRQ5 for vertical retrace.
  617. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  618. --------H-0A---------------------------------
  619. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  620. Note:    newer Roland cards and MIDI interfaces by other manufacturers use
  621.       a jumper-selectable IRQ, but software and hardware generally defaults
  622.       to IRQ2
  623. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  624. --------C-0A---------------------------------
  625. INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  626. Desc:    automatically called during a task switch if the new TSS specified by
  627.       the task gate is invalid for any of the following reasons:
  628.         TSS limit is less than 43 (80286) or 103 (80386/80486)
  629.         LDT selector invalid or segment not present
  630.         null SS selector, or SS selector outside LDT/GDT limit
  631.         stack segment is read-only
  632.         stack segment DPL differs from new CPL, or RPL <> CPL
  633.         CS selector is outside LDT/GDT limit or not code
  634.         non-conforming code segment's DPL differs from CPL
  635.         conforming code segment's DPL > CPL
  636.         DS/ES selectors outside LDT/GDT limit or not readable segments
  637. Note:    the handler must use a task gate in order to have a valid TSS under
  638.       which to execute; it must also reset the busy bit in the new TSS
  639. SeeAlso: INT 0B"CPU"
  640. --------H-0B---------------------------------
  641. INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  642. Desc:    automatically asserted by the UART when COM2 needs attention, if the
  643.       UART has been programmed to generate interrupts
  644. Notes:    the TOPS and PCnet adapters use this interrupt request line as an
  645.       alternate
  646.     on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  647.       shares this interrupt
  648.     may be masked by setting bit 3 on I/O port 21h
  649. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  650. --------C-0B---------------------------------
  651. INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT
  652. Desc:    generated when loading a segment register if the segment descriptor
  653.       indicates that the segment is not currently in memory, unless the
  654.       segment is an LDT (see INT 0A"CPU") or stack segment (see
  655.       INT 0C"CPU") needed by a task switch
  656. Note:    may be used to implement virtual memory by loading in segments as they
  657.       are accessed, clearing the "not present" bit after loading
  658. SeeAlso: INT 0A"CPU",INT 0E"CPU"
  659. --------h-0B---------------------------------
  660. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  661. Desc:    this is the lowest-level keyboard handler on an HP 95LX palmtop
  662. Note:    debounces key, places the keycode in I/O register 60h, and calls INT 09
  663. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  664. --------H-0C---------------------------------
  665. INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  666. Desc:    automatically asserted by the UART when COM1 needs attention, if the
  667.       UART has been programmed to generate interrupts
  668. BUG:    this vector is modified but not restored by Direct Access v4.0, and
  669.       may be left dangling by other programs written with the same version
  670.       of compiled BASIC
  671. Notes:    on many PC's, COM3 shares this interrupt
  672.     may be masked by setting bit 4 on I/O port 21h
  673. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  674. --------C-0C---------------------------------
  675. INT 0C C - CPU-generated (80286+) - STACK FAULT
  676. Desc:    this interrupt is generated in protected mode on a stack overflow or
  677.       underflow, or if an inter-level transition or task switch references
  678.       a stack segment marked "not present"; it is generated in real mode
  679.       on accessing a word operand at SS:FFFFh
  680. Note:    the 80286 will shut down in real mode if SP=1 before a push.  On the
  681.       PC AT and compatibles, external circuitry generates a reset on
  682.       shutdown.
  683. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  684. --------I-0C---------------------------------
  685. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  686. Desc:    the IBM System 36/38 emulator may be invoked through a private API,
  687.       whose entry point address (see #0006) is offset 100h in the segment
  688.       pointed at by this vector
  689.  
  690. (Table 0006)
  691. Call the System 36/38 emulator API entry point with:
  692.     AH = function
  693.         03h update screen
  694.         05h select next session
  695.         AL = session number (00h-03h)
  696.         Return: AL = session type code
  697.                 00h not active
  698.                 01h display session
  699.                 02h printer session
  700.                 FEh invalid session number
  701.             DS = requested session's data segment (0 if not active)
  702.                 (see #0007)
  703. Return: ???
  704.  
  705. Format of System 36/38 emulator's data area:
  706. Offset    Size    Description    (Table 0007)
  707. 13Eh    BYTE    bit flags for status line indicators turned on since this byte
  708.         last zerod
  709. 13Fh    BYTE    bit flags for status line indicators turned off since this
  710.         byte last set to FFh
  711. 140h    WORD    offset of EBCDIC to ASCII translation
  712. 146h    WORD    offset of EBCDIC screen buffer
  713. 148h    WORD    offset of EC (engineering change) level signature
  714. 150h    BYTE    "KEYI"
  715. 151h    BYTE    5250 key scan code to be sent to remote
  716. 15Bh    BYTE    "SYSAV"
  717. 15Dh    BYTE    5250 cursor column
  718. 15Eh    BYTE    5250 cursor row
  719. 167h    BYTE    "DVCTAD"
  720. 178h    BYTE    "FLAGS"
  721. 184h    BYTE    "SESSNOAD"
  722. 193h    BYTE    "STNAD"
  723. 198h    BYTE    "NSDS"
  724. Note:    offsets are from the interrupt handler's segment
  725. --------H-0D---------------------------------
  726. INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  727. Notes:    under DESQview, only the INT 15h vector and BASIC segment address (the
  728.       word at 0000h:0510h) may be assumed to be valid for the handler's
  729.       process
  730.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  731.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  732.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  733.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  734.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  735.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  736.       interrupt use IRQ5 for vertical retrace.
  737.     may be masked by setting bit 5 on I/O port 21h
  738. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  739. SeeAlso: INT 7D"GO32"
  740. --------H-0D---------------------------------
  741. INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  742. Desc:    used to ensure that the dynamic RAM retains its contents in earlier
  743.       1000-series models; later models use normal DMA for RAM refresh
  744.       (some early models have no DMA unless it is added via an expansion
  745.       card)
  746. SeeAlso: INT 55
  747. --------h-0D---------------------------------
  748. INT 0D - HP 95LX - INFRARED INTERRUPT
  749. Desc:    this interrupt is used to perform communications over the infrared
  750.       data link
  751. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  752. --------C-0D---------------------------------
  753. INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  754. Desc:    the CPU generates this interrupt when it detects a protection violation
  755.       which does not fit under any other category having a separate
  756.       interrupt
  757. Notes:    called in real mode when
  758.         an instruction accesses a memory operand extending beyond offset
  759.           FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  760.           CS, DS, ES, FG, or GS
  761.         a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  762.           in the second byte
  763.         an instruction exceeds the maximum length allowed (10 bytes for
  764.           80286, 15 bytes for 80386/80486)
  765.         an instruction wraps from offset FFFFh to offset 0000h
  766.     called in protected mode on protection violations not covered by INT 06
  767.       through INT 0C, including
  768.         segment limit violations
  769.         write to read-only segments
  770.         accesses using null DS or ES selectors
  771.         accesses to segments with privilege greater than CPL
  772.         wrong descriptor type
  773.     called on 80486 protected-mode floating-point protection fault
  774. SeeAlso: INT 09"80486",INT 0C"STACK"
  775. --------H-0E---------------------------------
  776. INT 0E C - IRQ6 - DISKETTE CONTROLLER
  777. Desc:    this interrupt is generated by the floppy disk controller on
  778.       completion of an operation
  779. Notes:    default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  780.     may be masked by setting bit 6 on I/O port 21h
  781. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  782. --------C-0E---------------------------------
  783. INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT
  784. Desc:    this interrupt is generated in protected and virtual-86 modes on
  785.       attempting to access a 4K memory page whose page table entry has
  786.       the "present" bit cleared
  787. Notes:    used to implement virtual memory--when the page fault occurs, the
  788.       operating system can load the appropriate page from disk
  789.     a protected-mode program written in the Flat memory model will often
  790.       generate this interrupt (typically reported as an Exception #14 or
  791.       Exception 0E with a register dump) when dereferencing an
  792.       uninitialized or corrupted pointer
  793. SeeAlso: INT 0B"CPU"
  794. --------h-0E---------------------------------
  795. INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT
  796. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  797. --------H-0F---------------------------------
  798. INT 0F C - IRQ7 - PARALLEL PRINTER
  799. Desc:    this interrupt is generated by the LPT1 printer adapter when the
  800.       printer becomes ready
  801. Notes:    most printer adapters do not reliably generate this interrupt
  802.     the 8259 interrupt controller generates an interrupt corresponding to
  803.       IRQ7 when an error condition occurs
  804. SeeAlso: INT 0D"IRQ5",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  805. --------h-0F---------------------------------
  806. INT 0F C - HP 95LX - REAL-TIME CLOCK
  807. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70"IRQ8"
  808. --------C-10---------------------------------
  809. INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR
  810. Desc:    this interrupt is generated by the CPU when the -ERROR pin is asserted
  811.       by the coprocessor
  812. Note:    AT's and clones usually wire the coprocessor to use IRQ13, but not all
  813.       get it right
  814. SeeAlso: INT 09"hardware",INT 75
  815. --------V-1000-------------------------------
  816. INT 10 - VIDEO - SET VIDEO MODE
  817.     AH = 00h
  818.     AL = desired video mode (see #0009)
  819. Return: AL = video mode flag (Phoenix, AMI BIOS)
  820.         20h mode > 7
  821.         30h modes 0-5 and 7
  822.         3Fh mode 6
  823.     AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  824. Desc:    specify the display mode for the currently active display adapter
  825. Notes:    IBM standard modes do not clear the screen if the high bit of AL is set
  826.       (EGA or higher only)
  827.     the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  828.       SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  829.       Everex EV-673, etc.
  830.     the installation check for Ahead adapters is the signature "AHEAD" at
  831.       C000h:0025h
  832.     the installation check for Paradise adapters is the signature "VGA=" at
  833.       C000h:007Dh
  834.     the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  835.       signature "OAK VGA" at C000h:0008h
  836.     the installation check for ATI adapters is the signature "761295520" at
  837.       C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
  838.         31h for 18800
  839.         32h for 18800-1
  840.         33h for 18800-2
  841.         34h for 18800-4
  842.         35h for 18800-5
  843.         62h for 68800AX (Mach32) (see also #0649)
  844.       the two bytes at C000h:0040h indicate the adapter type
  845.         "22" EGA Wonder
  846.         "31" VGA Wonder
  847.         "32" EGA Wonder800+
  848.       the byte at C000h:0042h contains feature flags
  849.         bit 1: mouse port present
  850.         bit 4: programmable video clock
  851.       the byte at C000h:0044h contains additional feature flags if chipset
  852.         byte > 30h (see #0008)
  853.     the installation check for Genoa video adapters is the signature
  854.       77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
  855.       and XXh is
  856.         00h for Genoa 6200/6300
  857.         11h for Genoa 6400/6600
  858.         22h for Genoa 6100
  859.         33h for Genoa 5100/5200
  860.         55h for Genoa 5300/5400
  861.       for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  862.       for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  863.         "EXTMODE", indicating support for extended modes
  864. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  865. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
  866. Index:    installation check;Tseng ET4000|installation check;Ahead video cards
  867. Index:    installation check;Oak Technologies|installation check;ATI video cards
  868. Index:    installation check;Paradise video|installation check;Genoa video cards
  869.  
  870. Bitfields for ATI additional feature flags:
  871. Bit(s)    Description    (Table 0008)
  872.  0    70 Hz non-interlaced display
  873.  1    Korean (double-byte) characters
  874.  2    45 MHz memory clock rather than 40 MHz
  875.  3    zero wait states
  876.  4    paged ROMs
  877.  6    no 8514/A monitor support
  878.  7    HiColor DAC
  879.  
  880. (Table 0009)
  881. Values for video mode:
  882.      text/ text pixel    pixel    colors disply scrn  system
  883.      grph resol     box  resolution       pages  addr
  884.  00h = T  40x25     8x8   320x200    16gray      8   B800 CGA,PCjr,Tandy
  885.      = T  40x25     8x14  320x350    16gray      8   B800 EGA
  886.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  887.      = T  40x25     9x16  360x400     16      8   B800 VGA
  888.  01h = T  40x25     8x8   320x200     16      8   B800 CGA,PCjr,Tandy
  889.      = T  40x25     8x14  320x350     16      8   B800 EGA
  890.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  891.      = T  40x25     9x16  360x400     16      8   B800 VGA
  892.  02h = T  80x25     8x8   640x200    16gray      4   B800 CGA,PCjr,Tandy
  893.      = T  80x25     8x14  640x350    16gray      8   B800 EGA
  894.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  895.      = T  80x25     9x16  720x400     16      8   B800 VGA
  896.  03h = T  80x25     8x8   640x200     16      4   B800 CGA,PCjr,Tandy
  897.      = T  80x25     8x14  640x350     16/64      8   B800 EGA
  898.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  899.      = T  80x25     9x16  720x400     16      8   B800 VGA
  900.  04h = G  40x25     8x8   320x200      4      .   B800 CGA,PCjr,EGA,MCGA,VGA
  901.  05h = G  40x25     8x8   320x200     4gray      .   B800 CGA,PCjr,EGA
  902.      = G  40x25     8x8   320x200      4      .   B800 MCGA,VGA
  903.  06h = G  80x25     8x8   640x200      2      .   B800 CGA,PCjr,EGA,MCGA,VGA
  904.      = G  80x25      .      .    mono      .   B000 HERCULES.COM on HGC [14]
  905.  07h = T  80x25     9x14  720x350    mono     var  B000 MDA,Hercules,EGA
  906.      = T  80x25     9x16  720x400    mono      .   B000 VGA
  907.  08h = T 132x25     8x8  1056x200     16      .   B800 ATI EGA/VGA Wonder [2]
  908.      = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA/VGA Wonder [2]
  909.      = G  20x25     8x8   160x200     16      .    .  PCjr, Tandy 1000
  910.      = G  80x25     8x16  640x400    color      .    .  Tandy 2000
  911.      = G  90x43     8x8   720x348    mono      .   B000 Hercules + MSHERC.COM
  912.      = G  90x45     8x8   720x360    mono      .   B000 Hercules + HERKULES [11]
  913.      = G  90x29     8x12  720x348    mono      .    .  Hercules + HERCBIOS [15]
  914.  09h = G  40x25     8x8   320x200     16      .    .  PCjr, Tandy 1000
  915.      = G  80x25     8x16  640x400    mono      .    .  Tandy 2000
  916.      = G  90x43     8x8   720x348    mono      .    .  Hercules + HERCBIOS [15]
  917.  0Ah = G  80x25     8x8   640x200      4      .    .  PCjr, Tandy 1000
  918.  0Bh =     reserved                   (EGA BIOS internal use)
  919.      = G  80x25     8x8   640x200     16      .    .  Tandy 1000 SL/TL [13]
  920.  0Ch =     reserved                   (EGA BIOS internal use)
  921.  0Dh = G  40x25     8x8   320x200     16      8   A000 EGA,VGA
  922.  0Eh = G  80x25     8x8   640x200     16      4   A000 EGA,VGA
  923.  0Fh = G  80x25     8x14  640x350    mono      2   A000 EGA,VGA
  924.  10h = G  80x25     8x14  640x350      4      2   A000 64k EGA
  925.      = G    .      .    640x350     16      .   A000 256k EGA,VGA
  926.  11h = G  80x30     8x16  640x480    mono      .   A000 VGA,MCGA,ATI EGA,ATI VIP
  927.  12h = G  80x30     8x16  640x480     16/256K  .   A000 VGA,ATI VIP
  928.      = G  80x30     8x16  640x480     16/64      .   A000 ATI EGA Wonder
  929.      = G    .      .    640x480     16      .    .  UltraVision+256K EGA
  930.  13h = G  40x25     8x8   320x200    256/256K  .   A000 VGA,MCGA,ATI VIP
  931.  14h = T 132x25     Nx16      .     16      .   B800 XGA, IBM Enhanced VGA [3]
  932.      = T 132x25     8x16 1056x400     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  933.      = G  80x25     8x8   640x200      .      .    .  Lava Chrome II EGA
  934.      = G    .      .    640x400     16      .    .  Tecmar VGA/AD
  935.  15h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  936.  16h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  937.      = G    .      .    800x600     16      .    .  Tecmar VGA/AD
  938.  17h = T 132x25      .      .      .      .    .  Tecmar VGA/AD
  939.      = T  80x43     8x8   640x348     16      4   B800 Tseng ET4000 BIOS [10]
  940.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  941.  18h = T  80x30     9x16  720x480     16      1   A000 Realtek RTVGA [12]
  942.      = T 132x25      .      .    mono      .   B000 Cirrus 5320 chipset
  943.      = T 132x44     8x8  1056x352    mono      .   B000 Tseng Labs EVA
  944.      = T 132x44     9x8  1188x352     4gray      2   B000 Tseng ET3000 chipset
  945.      = T 132x44     8x8  1056x352     16/256      2   B000 Tseng ET4000 chipset
  946.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  947.      = G          1024x768     16      .    .  Tecmar VGA/AD
  948.  19h = T  80x43     9x11  720x473     16      1   A000 Realtek RTVGA [12]
  949.      = T 132x25     8x14 1056x350    mono      .   B000 Tseng Labs EVA
  950.      = T 132x25     9x14 1188x350     4gray      4   B000 Tseng ET3000 chipset
  951.      = T 132x25     8x14 1056x350     16/256      4   B000 Tseng ET4000 chipset
  952.      = T 132x34      .      .    mono      .   B000 Cirrus 5320 chipset
  953.  1Ah = T  80x60     9x8   720x480     16      1   A000 Realtek RTVGA [12]
  954.      = T 132x28     8x13 1056x364    mono      .   B000 Tseng Labs EVA
  955.      = T 132x28     9x13 1188x364     4gray      4   B000 Tseng ET3000 chipset
  956.      = T 132x28     8x13 1056x364     16/256      4   B000 Tseng ET4000 chipset
  957.      = T 132x44      .      .    mono      .   B000 Cirrus 5320 chipset
  958.      = G    .      .    640x350    256      .    .  Tecmar VGA/AD
  959.  1Bh = T 132x25     9x14 1188x350     16      1   A000 Realtek RTVGA [12]
  960.      = G    .      .    640x400    256      .    .  Tecmar VGA/AD
  961.  1Ch = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  962.      = T 132x30     9x16 1188x480     16      1   A000 Realtek RTVGA [12]
  963.      = G    .      .    640x480    256      .    .  Tecmar VGA/AD
  964.  1Dh = T 132x43      .      .      .      .    .  Cirrus 5320 chipset
  965.      = T 132x43     9x11 1188x473     16      1   A000 Realtek RTVGA [12]
  966.      = G    .      .    800x600    256      .    .  Tecmar VGA/AD
  967.  1Eh = T 132x44      .      .      .      .    .  Cirrus 5320 chipset
  968.      = T 132x60     9x8  1188x480     16      1   A000 Realtek RTVGA [12]
  969.  1Fh = G 100x75     8x8   800x600     16      1   A000 Realtek RTVGA
  970.  20h = T 132x25      .      .     16      .    .  Avance Logic AL2101
  971.      = G  40x16      .    240x128    mono      .   B000 HP 95LX/100LX/200LX
  972.      = G 120x45     8x16  960x720     16      1   A000 Realtek RTVGA
  973.  21h = T  80x25      .      .    mono      .   B000 HP 200LX
  974.      = T 132x30      .      .     16      .    .  Avance Logic AL2101
  975.      = T 132x44     9x9  1188x396     16/256K  .   B800 WD90C
  976.      = T 132x44     9x9  1188x396     16      .   B800 Diamond Speedstar 24X
  977.      = T 132x60      .      .     16      2   B800 Tseng ET4000 chipset [10]
  978.      = G  80x43     8x8   720x348    mono      .   B000 DESQview 2.x+Hercules [4]
  979.      = G 128x48     8x16 1024x768     16      1   A000 Realtek RTVGA [12]
  980.  22h = T 132x43      .      .      .      .    .  Allstar Peacock (VGA)
  981.      = T 132x43      .      .     16      .    .  Avance Logic AL2101
  982.      = T 132x44     8x8  1056x352      .      .   B800 Tseng Labs EVA
  983.      = T 132x44     9x8  1188x352     16/256K  2   B800 Tseng ET3000 chipset
  984.      = T 132x44     8x8  1056x352     16/256K  2   B800 Tseng ET4000 chipset
  985.      = T 132x44     8x8  1056x352      .      .    .  Ahead Systems EGA2001
  986.      = T 132x44     8x8  1056x352     16      2   B800 Ahead B
  987.      = T 132x44     8x9  1056x398     16      .    .  STB Lightspeed ET4000/W32P
  988.      = T 132x44      .      .     16      .    .  Orchid Prodesigner VGA
  989.      = G  80x43     8x8   720x348    mono      .   B800 DESQview 2.x+Hercules [4]
  990.      = G  96x64     8x16  768x1024     16      1   A000 Realtek RTVGA
  991.  23h = T 132x25     6x14  792x350      .      .   B800 Tseng Labs EVA
  992.      = T 132x25     9x14 1188x350     16/256K  4   B800 Tseng ET3000 chipset
  993.      = T 132x25     8x14 1056x350     16/256      4   B800 Tseng ET4000 chipset
  994.      = T 132x25     8x14 1056x350      .      .    .  Ahead Systems EGA2001
  995.      = T 132x25     8x14 1056x350     16      4   B800 Ahead B
  996.      = T 132x25     8x8  1056x200     16      .   B800 ATI EGA Wonder,ATI VIP
  997.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  998.      = T 132x28      .      .      .      .    .  Allstar Peacock (VGA)
  999.      = T 132x28      .      .     16      .    .  Orchid Prodesigner VGA
  1000.      = T 132x60      .      .     16      .    .  Avance Logic AL2101
  1001.      = G 128x48     8x16 1024x768      4      1   A000 Realtek RTVGA
  1002.  24h = T  80x30      .      .     16      .    .  Avance Logic AL2101
  1003.      = T 132x25      .      .      .      .    .  Allstar Peacock (VGA)
  1004.      = T 132x25      .      .     16      .    .  Orchid Prodesigner VGA
  1005.      = T 132x28     6x13  792x364      .      .   B800 Tseng Labs EVA
  1006.      = T 132x28     9x13 1188x364     16/256K  4   B800 Tseng ET3000 chipset
  1007.      = T 132x28     8x12 1056x336     16      1   B800 Ahead B
  1008.      = T 132x28     8x13 1056x364     16/256K  4   B800 Tseng ET4000 chipset
  1009.      = T 132x28     8x14 1056x392     16      .    .  STB Lightspeed ET4000/W32P
  1010.      = T 132x28      .      .      .      .    .  Cirrus 5320 chipset
  1011.      = G  64x32     8x16  512x512    256      1   A000 Realtek RTVGA
  1012.  25h = T  80x43      .      .     16      .    .  Avance Logic AL2101
  1013.      = G  80x60     8x8   640x480      .      .   A000 Tseng Labs EVA
  1014.      = G  80x60     8x8   640x480     16/256K  1   A000 Tseng ET3000/4000 chipset
  1015.      = G    .      .    640x480     16      .    .  VEGA VGA
  1016.      = G  80x60     8x8   640x480     16      .   A000 Orchid Prodesigner VGA
  1017.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 26h)
  1018.      = G    .      .    640x480     16      .    .  NEC GB-1
  1019.      = G    .      .    640x480     16      .    .  Cirrus 5320 chipset
  1020.      = G    .      .    640x400    256      .    .  Realtek RTVGA
  1021.  26h = T  80x60     8x8   640x480      .      .    .  Tseng Labs EVA
  1022.      = T  80x60     8x8   640x480     16/256K  3   B800 Tseng ET3000/4000 chipset
  1023.      = T  80x60      .      .      .      .    .  Allstar Peacock (VGA)
  1024.      = T  80x60      .      .     16      .    .  Orchid ProDesigner VGA
  1025.      = T  80x60      .      .     16      .    .  Avance Logic AL2101
  1026.      = G  80x60     8x8   640x480      .      .    .  Ahead Systems EGA2001
  1027.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 25h)
  1028.      = G    .      .    640x480    256      .    .  Realtek RTVGA
  1029.  27h = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA Wonder,ATI VIP
  1030.      = G    .      .    720x512     16      .    .  VEGA VGA
  1031.      = G    .      .    720x512     16      .    .  Genoa
  1032.      = G 100x75     8x8   800x600    256      1   A000 Realtek RTVGA [12]
  1033.      = G    .      .    960x720     16      .    .  Avance Logic AL2101
  1034.  28h = T ???x???  .      .      .      .    .  VEGA VGA
  1035.      = G    .      .    512x512    256      .    .  Avance Logic AL2101
  1036.      = G    .      .   1024x768    256      .    .  Realtek RTVGA (1meg)
  1037.  29h = G    .      .    640x400    256      .    .  Avance Logic AL2101
  1038.      = G    .      .    800x600     16      .    .  VEGA VGA
  1039.      = G 100x37     8x16  800x600     16      .   A000 Orchid
  1040.      = G    .      .    800x600     16      .   A000 STB,Genoa,Sigma
  1041.      = G    .      .    800x600     16      .    .  Allstar Peacock (VGA)
  1042.      = G 100x37     8x16  800x600     16/256K  1   A000 Tseng ET3000/4000 chipset
  1043.      = G    .      .    800x600    ???      .    .  EIZO MDB10
  1044.      = G    .      .    800x600     16      .    .  Cirrus 5320 chipset
  1045.      = G   NA      .    800x600     16      .    .  Compaq QVision 1024/1280
  1046.      = G    .      .   1024x1024 256      .    .  Realtek RTVGA BIOS v3.C10
  1047.  2Ah = T 100x40      .      .      .      .    .  Allstar Peacock (VGA)
  1048.      = T 100x40     8x16  800x640     16      .    .  Orchid Prodesigner VGA
  1049.      = T 100x40     8x15  800x600     16/256K  4   B800 Tseng ET3000/4000 chipset
  1050.      = T 100x40     8x15  800x600     16      .    .  STB Lightspeed ET4000/W32P
  1051.      = G    .      .    640x480    256      .    .  Avance Logic AL2101
  1052.      = G    .      .   1280x1024     16      .    .  Realtek RTVGA
  1053.  2Bh = G    .      .    800x600     16      .    .  Avance Logic AL2101
  1054.  2Ch = G    .      .    800x600    256      .    .  Avance Logic AL2101
  1055.  2Dh = G    .      .    640x350    256      .    .  VEGA VGA
  1056.      = G    .      .    640x350    256/256K  .   A000 Orchid, Genoa, STB
  1057.      = G  80x25     8x14  640x350    256/256K  1   A000 Tseng ET3000/4000 chipset
  1058.      = G    .      .    640x350    256      .    .  Cirrus 5320 chipset
  1059.      = G  80x25     8x14  640x350    256      .    .  STB Lightspeed ET4000/W32P
  1060.      = G    .      .    768x1024     16      .    .  Avance Logic AL2101
  1061.  2Eh = G    .      .    640x480    256      .    .  VEGA VGA
  1062.      = G  80x30     8x16  640x480 256/256K      .   A000 Orchid
  1063.      = G    .      .    640x480 256/256K      .   A000 STB,Genoa,Sigma
  1064.      = G  80x30     8x16  640x480 256/256K      1   A000 Tseng ET3000/4000 chipset
  1065.      = G    .      .    640x480 256/256K      .    .  Compaq QVision 1024/1280
  1066.      = G    .      .    768x1024 256      .    .  Avance Logic AL2101
  1067.  2Fh = T 160x50     8x8  1280x400     16      4   B800 Ahead B (Wizard/3270)
  1068.      = G    .      .    720x512    256      .    .  VEGA VGA
  1069.      = G    .      .    720x512    256      .    .  Genoa
  1070.      = G  80x25     8x16  640x400 256/256K      1   A000 Tseng ET4000 chipset
  1071.      = G    .      .   1024x768      4      .    .  Avance Logic AL2101
  1072.  30h = G    .      .    800x600    256      .    .  VEGA VGA
  1073.      = G 100x37     8x16  800x600 256/256K      .   A000 Orchid
  1074.      = G    .      .    800x600 256/256K      .   A000 STB,Genoa,Sigma
  1075.      = G    .      .    720x350      2      .    .  3270 PC
  1076.      = G    .      .    800x600    256      .    .  Cardinal
  1077.      = G    .      .      .      .      .   B800 AT&T 6300
  1078.      = G 100x37     8x16  800x600 256/256K      1   A000 Tseng ET3000/4000 chipset
  1079.      = G    .      .   1024x768     16      .    .  Avance Logic AL2101
  1080.  31h = G    .      .   1024x768    256      .    .  Avance Logic AL2101
  1081.  32h = T  80x34     8x10      .     16      4   B800 Ahead B (Wizard/3270)
  1082.      = G    .      .    640x480    256      .    .  Compaq QVision 1024/1280
  1083.  33h = T 132x44     8x8      .     16      .   B800 ATI EGA Wonder,ATI VIP
  1084.      = T  80x34     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  1085.  34h = T  80x66     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  1086.      = G    .      .    800x600    256      .    .  Compaq QVision 1024/1280
  1087.  36h = G    .      .    960x720     16      .    .  VEGA VGA, STB
  1088.      = G    .      .    960x720     16      .   A000 Tseng ET3000 only
  1089.      = G    .      .   1280x1024     16      .    .  Avance Logic AL2101
  1090.  37h = T 132x44     8x8      .    mono      .   B800 ATI EGA Wonder,ATI VIP
  1091.      = G    .      .   1024x768     16      .    .  VEGA VGA
  1092.      = G 128x48     8x16 1024x768     16      .   A000 Orchid
  1093.      = G    .      .   1024x768     16      .   A000 STB,Genoa,Sigma
  1094.      = G    .      .   1024x768     16      .    .  Definicon
  1095.      = G 128x48     8x16 1024x768     16      1   A000 Tseng ET3000/4000 chipset
  1096.      = G    .      .   1024x768     16      .    .  Compaq QVision 1024/1280
  1097.      = G    .      .   1280x1024 256      .    .  Avance Logic AL2101
  1098.  38h = G    .      .   1024x768    256      .    .  STB VGA/EM-16 Plus (1MB)
  1099.      = G 128x48     8x16 1024x768    256/256K  1   A000 Tseng ET4000 chipset
  1100.      = G    .      .   1024x768    256      .    .  Orchid ProDesigner II
  1101.      = G    .      .   1024x768    256      .    .  Compaq QVision 1024/1280
  1102.  39h = G    .      .   1280x1024     16      .    .  Compaq QVision 1280
  1103.  3Ah = G    .      .   1280x1024    256      .    .  Compaq QVision 1280
  1104.  3Bh = G    .      .    512x480    256      .    .  Compaq QVision 1024/1280
  1105.  3Ch = G    .      .    640x400     64K      .    .  Compaq QVision 1024/1280
  1106.  3Dh = G    .      .   1280x1024     16      .    .  Definicon
  1107.      = G 128x64     8x16 1280x1024     16      1   A000 Tseng ET4000 v3.00 [1,7]
  1108.  3Eh = G    .      .   1280x961     16      .    .  Definicon
  1109.      = G    .      .    640x480     64K      .    .  Compaq QVision 1024/1280
  1110.  3Fh = G    .      .   1280x1024 256      .    .  Hercules ??? (ET4000W32)
  1111.      = G    .      .    800x600     64K      .    .  Compaq QVision 1024/1280
  1112.  40h = T  80x43      .      .      .      .    .  VEGA VGA, Tecmar VGA/AD
  1113.      = T  80x43      .      .      .      .    .  Video7 V-RAM VGA
  1114.      = T  80x43      .      .      .      .    .  Tatung VGA
  1115.      = T 100x30      .      .     16      .    .  MORSE VGA
  1116.      = T 100x30      .      .      .      .    .  Cirrus 510/520 chipset
  1117.      = T  80x25      .    720x350    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1118.      = G    .      .    320x200     64K      .    .  Avance Logic AL2101
  1119.      = G  80x25     8x16  640x400      2      1   B800 AT&T 6300, AT&T VDC600
  1120.      = G  80x25     8x16  640x400      2      1   B800 Olivetti Quaderno
  1121.      = G  80x25     8x16  640x400      2      1   B800 Compaq Portable
  1122.      = G    .      .   1024x768     64K      .    .  Compaq QVision 1280
  1123.  41h = T 132x25      .      .      .      .    .  VEGA VGA
  1124.      = T 132x25      .      .      .      .    .  Tatung VGA
  1125.      = T 132x25      .      .      .      .    .  Video7 V-RAM VGA
  1126.      = T 100x50      .      .     16      .    .  MORSE VGA
  1127.      = T 100x50      .      .      .      .    .  Cirrus 510/520 chipset
  1128.      = T  80x34     9x14  720x476     16/256K  .   B800 WD90C
  1129.      = T  80x34     9x14      .     16      .   B800 Diamond Speedstar 24X
  1130.      = G    .      .    512x512     64K      .    .  Avance Logic AL2101
  1131.      = G    .      .    640x200     16      1    .  AT&T 6300
  1132.      = G  80x25      .    720x348    mono      .   B000 Genoa SuperEGA BIOS 3.0+
  1133.  42h = T 132x43      .      .      .      .    .  VEGA VGA
  1134.      = T 132x43      .      .      .      .    .  Tatung VGA
  1135.      = T 132x43      .      .      .      .    .  Video7 V-RAM VGA
  1136.      = T  80x34     9x10      .      4      4   B800 Ahead B (Wizard/3270)
  1137.      = T 100x60      .      .     16      .    .  MORSE VGA
  1138.      = T 100x60      .      .      .      .    .  Cirrus 510/520 chipset
  1139.      = G  80x25     8x16  640x400     16      .    .  AT&T 6300, AT&T VDC600
  1140.      = G    .      .    640x400     64K      .    .  Avance Logic AL2101
  1141.      = G  80x25      .    720x348    mono      .   B800 Genoa SuperEGA BIOS 3.0+
  1142.  43h = T  80x60      .      .      .      .    .  VEGA VGA
  1143.      = T  80x60      .      .      .      .    .  Tatung VGA
  1144.      = T  80x60      .      .      .      .    .  Video7 V-RAM VGA
  1145.      = T  80x45     9x8      .      4      4   B800 Ahead B (Wizard/3270)
  1146.      = T 100x75      .      .     16      .    .  MORSE VGA
  1147.      = T  80x29      .    720x348    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1148.      = G    .      . 640x200 of 640x400 viewport       AT&T 6300 (unsupported)
  1149.      = G    .      .    640x480     64K      .    .  Avance Logic AL2101
  1150.  44h =    disable VDC and DEB output        .  AT&T 6300
  1151.      = T 100x60      .      .      .      .    .  VEGA VGA
  1152.      = T 100x60      .      .      .      .    .  Tatung VGA
  1153.      = T 100x60      .      .      .      .    .  Video7 V-RAM VGA
  1154.      = T  80x32      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1155.      = G    .      .    800x600     64K      .    .  Avance Logic AL2101
  1156.  45h = T 132x28      .      .      .      .    .  Tatung VGA
  1157.      = T 132x28      .      .      .      .    .  Video7 V-RAM VGA
  1158.      = T  80x44      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1159.  46h = T 132x25     8x14      .    mono      .    .  Genoa 6400
  1160.      = T 132x25     9x14      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1161.      = G 100x40     8x15  800x600      2      .    .  AT&T VDC600
  1162.  47h = T 132x29     8x12      .    mono      .    .  Genoa 6400
  1163.      = T 132x29     9x12      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1164.      = T 132x28     9x16 1188x448     16/256K  .   B800 WD90C
  1165.      = T 132x28     9x16      .     16      .   B800 Diamond Speedstar 24X
  1166.      = G 100x37     8x16  800x600     16      .    .  AT&T VDC600
  1167.  48h = T 132x32     8x12      .    mono      .    .  Genoa 6400
  1168.      = T 132x32     9x11      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1169.      = G  80x50     8x8   640x400      2      .   B800 AT&T 6300, AT&T VDC600
  1170.      = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno
  1171.  49h = T 132x44     8x8      .    mono      .    .  Genoa 6400
  1172.      = T 132x44     9x8      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1173.      = G  80x30     8x16  640x480      .      .    .  Lava Chrome II EGA
  1174.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1175.  4Bh = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1176.  4Dh = T 120x25      .      .      .      .    .  VEGA VGA
  1177.      = G    .      .    512x480     16M      .    .  Compaq QVision 1024/1280
  1178.      = G 128x48     8x16 1024x768      .      .   A000 Diamond Stealth64 Video 2xx1
  1179.  4Eh = T 120x43      .      .      .      .    .  VEGA VGA
  1180.      = T  80x60     8x8      .     16/256K  .   B800 Oak OTI-067/OTI-077 [8]
  1181.      = G    .      .    640x400     16M      .    .  Compaq QVision 1024/1280
  1182.      = G 144x54     8x16 1152x864      .      .   A000 Diamond Stealth64 Video 2xx1
  1183.  4Fh = T 132x25      .      .      .      .    .  VEGA VGA
  1184.      = T 132x60      .      .      .      .    .  some Oak Tech VGA [8]
  1185.      = G    .      .    640x480     16M      .    .  Compaq QVision 1280
  1186.  50h = T  80x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1187.      = T  80x34      .      .      .      .    .  Lava Chrome II EGA
  1188.      = T  80x43      .      .    mono      .    .  VEGA VGA
  1189.      = T 132x25     9x14      .    mono      .    .  Ahead Systems EGA2001
  1190.      = T 132x25     9x14      .      4      4   B800 Ahead B
  1191.      = T 132x25     8x14      .     16      8   B800 OAK Technologies VGA-16
  1192.      = T 132x25     8x14      .     16/256K  .   B800 Oak OTI-037/067/077 [8]
  1193.      = T 132x25     8x14 1056x350     16      8   B800 UM587 chipset
  1194.      = T 132x30      .      .     16      .    .  MORSE VGA
  1195.      = T 132x30      .      .      .      .    .  Cirrus 510/520 chipset
  1196.      = G  80x30     8x16  640x480     16      .    .  Paradise EGA-480
  1197.      = G  80x30     8x16  640x480     16      .    .  NEL Electronics BIOS
  1198.      = G    .      .    640x480    mono???      .    .  Taxan 565 EGA
  1199.      = G  40x25     8x8   320x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1200.  51h = T  80x30     8x16      .      .      .    .  Paradise EGA-480
  1201.      = T  80x30     9x16      .      .      .    .  NEL Electronics BIOS
  1202.      = T  80x30      .      .      .      .    .  Lava Chrome II EGA
  1203.      = T  80x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1204.      = T 132x25      .      .    mono      .    .  VEGA VGA
  1205.      = T 132x28     9x12      .      4      4   B800 Ahead B
  1206.      = T 132x43     8x8      .     16      5   B800 OAK Technologies VGA-16
  1207.      = T 132x43     8x8      .     16/256K  .   B800 Oak OTI-037/067/077
  1208.      = T 132x43     8x8  1056x344     16      5   B800 UM587 chipset
  1209.      = T 132x50      .      .     16      .    .  MORSE VGA
  1210.      = T 132x50      .      .      .      .    .  Cirrus 510/520 chipset
  1211.      = G  80x34     8x14  640x480     16      .    .  ATI EGA Wonder
  1212.      = G  80x25     8x8   640x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1213.  52h = T  80x60      .      .      .      .    .  Lava Chrome II EGA
  1214.      = T  80x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1215.      = T 132x43      .      .    mono      .    .  VEGA VGA
  1216.      = T 132x44     9x8      .    mono      .    .  Ahead Systems EGA2001
  1217.      = T 132x44     9x8      .      4      2   B800 Ahead B
  1218.      = T 132x60      .      .     16      .    .  MORSE VGA
  1219.      = T 132x60      .      .      .      .    .  Cirrus 510/520 chipset
  1220.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji&superimpose)
  1221.      = G  94x29     8x14  752x410     16      .    .  ATI EGA Wonder
  1222.      = G 100x75     8x8   800x600     16      1   A000 OAK Technologies VGA-16
  1223.      = G 100x75     8x8   800x600     16      .   A000 Oak OTI-037 chipset [8]
  1224.      = G 100x37     8x16  800x600     16      .   A000 Oak OTI-067/077 chips [8]
  1225.      = G 100x75     8x8   800x600     16      .   A000 UM587 chipset
  1226.      = G 128x30     8x16 1024x480     16      .    .  NEL Electronics BIOS
  1227.  53h = T  80x25     8x16      .      .      .    .  NEL Electronics BIOS
  1228.      = T  80x60      .      .     16      .    .  MORSE VGA
  1229.      = T  80x60      .      .      .      .    .  Cirrus 510/520 chipset
  1230.      = T 132x25     8x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1231.      = T 132x43      .      .      .      .    .  Lava Chrome II EGA
  1232.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji, no superimp.)
  1233.      = G    .      .    640x480    256      .    .  Oak VGA
  1234.      = G  80x30     8x16  640x480    256      .   A000 Oak OTI-067/OTI-077 [8]
  1235.      = G 100x40     8x14  800x560     16      .    .  ATI EGA Wonder,ATI VIP
  1236.      = G    .      .      .      .      .    .  AX PC
  1237.  54h = T 132x25      .      .      .      .    .  Lava Chrome II EGA
  1238.      = T 132x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1239.      = T 132x43     8x8      .      .      .    .  Paradise EGA-480
  1240.      = T 132x43     8x8      .      .      .    .  NEL Electronics BIOS
  1241.      = T 132x43     7x9      .     16/256K  .   B800 Paradise VGA
  1242.      = T 132x43     8x9      .     16/256K  .   B800 Paradise VGA on multisync
  1243.      = T 132x43      .      .      .      .    .  Taxan 565 EGA
  1244.      = T 132x43      .      .      .      .    .  AST VGA Plus
  1245.      = T 132x43      .      .      .      .    .  Hewlett-Packard D1180A
  1246.      = T 132x43     7x9      .     16      .    .  AT&T VDC600
  1247.      = T 132x43     9x9  1188x387     16/256K  .   B800 WD90C
  1248.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Speedstar 24X
  1249.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Stealth 24
  1250.      = T 132x43     8x8      .      .      .   B800 Diamond Stealth64 Video 2xx1
  1251.      = T 132x43     8x8  1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1252.      = T 132x50     8x8      .     16      .   A000 NCR 77C22 [9]
  1253.      = G 100x42     8x14  800x600     16      .   A000 ATI EGA Wonder, VGA Wonder
  1254.      = G 100x42     8x14  800x600     16      .   A000 ATI Ultra 8514A, ATI XL
  1255.      = G    .      .    800x600    256      .   A000 Oak VGA
  1256.      = G 100x37     8x16  800x600    256      .   A000 Oak OTI-067/077 chips [8]
  1257.  55h = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1258.      = T 132x25     8x14      .      .      .    .  Paradise EGA-480
  1259.      = T 132x25     8x14      .      .      .    .  NEL Electronics BIOS
  1260.      = T 132x25     7x16      .     16/256K  .   B800 Paradise VGA
  1261.      = T 132x25     8x16      .     16/256K  .   B800 Paradise VGA on multisync
  1262.      = T 132x25      .      .      .      .    .  Taxan 565 EGA
  1263.      = T 132x25      .      .      .      .    .  AST VGA Plus
  1264.      = T 132x25      .      .      .      .    .  Hewlett-Packard D1180A
  1265.      = T 132x25     7x16      .     16      .    .  AT&T VDC600
  1266.      = T 132x25     8x16      .     16      .   A000 NCR 77C22 [9]
  1267.      = T 132x25     9x16 1188x400     16/256K  .   B800 WD90C
  1268.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Speedstar 24X
  1269.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Stealth 24
  1270.      = T 132x25     8x16      .      .      .   B800 Diamond Stealth64 Video 2xx1
  1271.      = T 132x25     8x14 1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1272.      = T 132x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1273.      = G  94x29     8x14  752x410      .      .    .  Lava Chrome II EGA
  1274.      = G 128x48     8x16 1024x768     16/256K  .   A000 ATI VGA Wonder v4+  [5]
  1275.      = G    .      .   1024x768     16/256K  .    .  ATI VGA Wonder Plus
  1276.      = G    .      .   1024x768     16/256K  .    .  ATI Ultra 8514A,ATI XL
  1277.      = G 128x48     8x16 1024x768      4      .   A000 Oak OTI-067/077 chips [8]
  1278.  56h = T 132x43     8x8      .      3???      2   B000 NSI Smart EGA+
  1279.      = T 132x43     7x9      .      4      .   B000 Paradise VGA
  1280.      = T 132x43     8x9      .      4      .   B000 Paradise VGA on multisync
  1281.      = T 132x43      .      .    mono      .    .  Taxan 565 EGA
  1282.      = T 132x43     7x9      .      2      .    .  AT&T VDC600
  1283.      = T 132x43     9x8      .      .      .    .  NEL Electronics BIOS
  1284.      = T 132x50     8x8      .      4      .   A000 NCR 77C22 [9]
  1285.      = T 132x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1286.      = G    .      .   1024x768     16      .   A000 Oak VGA
  1287.      = G 128x48     8x16 1024x768     16      .   A000 Oak OTI-067/077 chips [8]
  1288.  57h = T 132x25     8x14      .      3???      4   B000 NSI Smart EGA+
  1289.      = T 132x25     7x16      .      4      .   B000 Paradise VGA
  1290.      = T 132x25     8x16      .      4      .   B000 Paradise VGA on multisync
  1291.      = T 132x25     9x14      .      .      .    .  NEL Electronics BIOS
  1292.      = T 132x25      .      .    mono      .    .  Taxan 565 EGA
  1293.      = T 132x25     7x16      .      2      .    .  AT&T VDC600
  1294.      = T 132x25     9x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1295.      = T 132x25     8x16      .      4      .   A000 NCR 77C22 [9]
  1296.      = G  96x48     8x16  768x1024     16      .   A000 Oak OTI-067/077 chips [8]
  1297.  58h = T  80x33     8x14      .     16      .   B800 ATI EGA Wonder,ATI VIP
  1298.      = T  80x32     9x16      .     16      .    .  Genoa 6400
  1299.      = T  80x43     8x8      .      .      .    .  NEL Electronics BIOS
  1300.      = T 132x30     9x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1301.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA
  1302.      = G 100x75     8x8   800x600     16      .    .  AT&T VDC600
  1303.      = G 100x75     8x8   800x600     16      .   A000 NCR 77C22 [9]
  1304.      = G 100x75     8x8   800x600     16      .   A000 Diamond Speedstar 24X
  1305.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA, WD90C
  1306.      = G    .      .    800x600     16      .    .  AST VGA Plus, Compaq VGA
  1307.      = G    .      .    800x600     16      .    .  Dell VGA
  1308.      = G    .      .    800x600     16      .    .  Hewlett-Packard D1180A
  1309.      = G    .      .    800x600    ???      .    .  ELT VGA PLUS 16
  1310.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1311.      = G 160x64     8x16 1280x1024     16      .   A000 Oak OTI-077 chipset [8]
  1312.  59h = T  80x43     9x8      .      .      .    .  NEL Electronics BIOS
  1313.      = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1314.      = T 132x43     9x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1315.      = G 100x75     8x8   800x600      2      .   A000 Paradise VGA
  1316.      = G 100x75     8x8   800x600      2      .    .  AT&T VDC600
  1317.      = G    .      .    800x600      2      .    .  AST VGA Plus, Compaq VGA
  1318.      = G    .      .    800x600      2      .    .  Dell VGA
  1319.      = G    .      .    800x600      2      .    .  Hewlett-Packard D1180A
  1320.      = G 100x75     8x8   800x600      2      .   A000 NCR 77C22 [9]
  1321.      = G 128x48     8x16 1024x768    256      .   A000 Oak OTI-077 chipset [8]
  1322.  5Ah = T  80x60     8x8      .      .      .    .  NEL Electronics BIOS
  1323.      = T 132x60     9x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1324.      = G 128x48     8x16 1024x768      2      .   A000 NCR 77C22 [9]
  1325.  5Bh = T  80x30     8x16      .      .      .   B800 ATI VGA Wonder (undoc)
  1326.      = G    .      .    640x350    256      .    .  Genoa 6400
  1327.      = G  80x25     8x16  640x400     32K      .   A000 Oak OTI-067/077 chips [8]
  1328.      = G    .      .    800x600     16      .    .  Maxxon, SEFCO TVGA, Imtec
  1329.      = G 100x75     8x8   800x600     16/256K  .   A000 Trident TVGA 8800, 8900
  1330.      = G    .      .    800x600    ???      .    .  Vobis MVGA
  1331.      = G 100x37     8x16  800x600      .      .    .  NEL Electronics BIOS
  1332.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [1,9]
  1333.  5Ch = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1334.      = G    .      .    640x400    256      .    .  Logix, ATI Prism Elite
  1335.      = G    .      .    640x400    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1336.      = G  80x25     8x16  640x400    256/256K  .   A000 Zymos Poach, Hi Res 512
  1337.      = G  80x25     8x16  640x400    256/256K  .   A000 Trident TVGA 8800/8900
  1338.      = G  80x30     8x16  640x480    256      .    .  Genoa 6400
  1339.      = G  80x30     8x16  640x480     32K      .   A000 Oak OTI-077 chipset [8]
  1340.      = G 100x75     8x8   800x600    256      .   A000 NCR 77C22 [9]
  1341.      = G 100x75     8x8   800x600    256/256K  .   A000 WD90C
  1342.      = G 100x75     8x8   800x600    256/256K  .   A000 Diamond Speedstar 24X
  1343.      = G 100x37     8x16  800x600    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1344.  5Dh = T 100x75     8x8      .      .      .    .  NEL Electronics BIOS
  1345.      = G  80x25     8x14  640x350     64K      .    .  STB Lightspeed ET4000/W32P
  1346.      = G    .      .    640x480    256      .    .  Logix, ATI Prism Elite
  1347.      = G    .      .    640x480    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1348.      = G  80x30     8x16  640x480    256/256K  .   A000 Zymos Poach, Hi Res 512
  1349.      = G  80x30     8x16  640x480    256/256K  .   A000 Trident TVGA 8800 (512K)
  1350.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [9]
  1351.      = G 128x48     8x16 1024x768     16/256K  .   A000 WD90C
  1352.      = G 128x48     8x16 1024x768     16      .   A000 Diamond Speedstar 24X
  1353.      = G 128x48     8x16 1024x768     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1354.  5Eh = G    .      .    640x400    256      .    .  Paradise VGA,VEGA VGA
  1355.      = G    .      .    640x400    256      .    .  AST VGA Plus, NCR 77C22
  1356.      = G    .      .    640x400    256      .    .  Compaq VGA, Dell VGA
  1357.      = G  80x25     8x16  640x400    256      .    .  AT&T VDC600
  1358.      = G  80x25     8x16  640x400    256      .   A000 NCR 77C22 [9]
  1359.      = G  80x25     8x16  640x400    256/256K  .   A000 WD90C
  1360.      = G  80x25     8x16  640x400    256/256K  .   A000 Diamond Speedstar 24X
  1361.      = G    .      .    800x600     16      .    .  Logix, ATI Prism Elite
  1362.      = G 100x37     8x16  800x600     16      .    .  NEL Electronics BIOS
  1363.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1364.      = G 100x75     8x8   800x600    256/256K  .   A000 Zymos Poach, Trident 8900
  1365.      = G 100x75     8x8   800x600    256/256K  .   A000 Hi Res 512
  1366.  5Fh = G  80x25     8x16  640x400     64K      .    .  STB Lightspeed ET4000/W32P
  1367.      = G    .      .    640x480    256      .    .  Paradise VGA
  1368.      = G    .      .    640x480    256      .    .  AST VGA Plus, NCR 77C22
  1369.      = G    .      .    640x480    256      .    .  Compaq VGA, Dell VGA
  1370.      = G    .      .    640x480    256      .    .  Hewlett-Packard D1180A
  1371.      = G  80x30     8x16  640x480    256      .    .  AT&T VDC600 (512K)
  1372.      = G  80x30     8x16  640x480    256      .   A000 NCR 77C22 [9]
  1373.      = G  80x30     8x16  640x480    256/256K  .   A000 WD90C
  1374.      = G  80x30     8x16  640x480    256/256K  .   A000 Diamond Speedstar 24X
  1375.      = G  80x30     8x16  640x480    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1376.      = G    .      .   1024x768     16      .    .  Logix, ATI Prism Elite
  1377.      = G    .      .   1024x768     16      .    .  Maxxon, Imtec
  1378.      = G 128x48     8x16 1024x768     16      .    .  Genoa 6400
  1379.      = G 128x48     8x16 1024x768     16/256K  .   A000 Zymos Poach, Hi Res 512
  1380.      = G 128x48     8x16 1024x768     16/256K  .   A000 Trident TVGA 88/8900 512K
  1381.  60h = T 132x25     8x14      .     16/64      8   B800 Quadram Ultra VGA
  1382.      = T 132x25     8x14      .     16      .    .  Genoa 6400
  1383.      = T 132x25     8x14      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1384.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  1385.      = T 132x25      .      .     16      .    .  Chips&Technologies chipset
  1386.      = G  80x???  .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1387.      = G  80x25     8x16  640x400    256      1   A000 Ahead A, Ahead B
  1388.      = G    .      .    752x410      .      .    .  VEGA VGA
  1389.      = G    .      .    752x410     16      .    .  Tatung VGA
  1390.      = G    .      .    752x410     16      .    .  Video7 V-RAM VGA
  1391.      = G 128x48     8x16 1024x768      4/256K  .   A000 Trident TVGA 8900
  1392.      = G 128x48     8x16 1024x768    256/256K  .   A000 WD90C
  1393.      = G 128x48     8x16 1024x768    256/256K  .   A000 Diamond Speedstar 24X
  1394.      = G 128x48     8x16 1024x768    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1395.      = G 144x54     8x16 1152x864      .      .   A000 Diamond Stealth64 Video 2xx1
  1396.  61h = T 132x29     8x12      .     16/64      8   B800 Quadram Ultra VGA
  1397.      = T 132x29     8x8      .     16      .    .  Genoa 6400
  1398.      = T 132x29     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1399.      = T 132x50      .      .      .      .    .  Cirrus 5320 chipset
  1400.      = T 132x50      .      .     16      .    .  Chips&Technologies chipset
  1401.      = G    .      .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1402.      = G  80x25     8x16  640x400    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1403.      = G  80x25     8x16  640x400    256      .   A000 ATI Ultra 8514A,ATI XL
  1404.      = G  80x25     8x16  640x400      .      .   A000 Diamond Stealth64 Video 2xx1
  1405.      = G  80x30     8x16  640x480    256      1   A000 Ahead A, Ahead B (512K)
  1406.      = G    .      .    720x540      .      .    .  VEGA VGA
  1407.      = G    .      .    720x540     16      .    .  Tatung VGA
  1408.      = G    .      .    720x540     16      .    .  Video7 V-RAM VGA
  1409.      = G  96x64     8x16  768x1024     16/256K  .   A000 Trident TVGA 88/8900 512K
  1410.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [1,9]
  1411.      = G 144x54     8x16 1152x864      .      .   A000 Diamond Stealth64 Video 2xx1
  1412.  62h = T 132x32     8x11      .     16/64      6   B800 Quadram Ultra VGA
  1413.      = T 132x32     8x12      .     16      .    .  Genoa 6400
  1414.      = T 132x32     8x11      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1415.      = G    .      .    640x450     16      .    .  Cirrus 510/520 chipset
  1416.      = G  80x30     8x16  640x480    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1417.      = G  80x30     8x16  640x480    256      .   A000 ATI Ultra 8514A,ATI XL
  1418.      = G  80x30     8x16  640x480    32K      .   A000 WD90C
  1419.      = G  80x30     8x16  640x480    32K      .   A000 Diamond Speedstar 24X
  1420.      = G    .      .    800x600      .      .    .  VEGA VGA
  1421.      = G    .      .    800x600     16      .    .  Tatung VGA
  1422.      = G    .      .    800x600     16      .    .  Video7 V-RAM VGA
  1423.      = G 100x75     8x8   800x600    256      1   A000 Ahead A, Ahead B (512K)
  1424.      = G 128x48     8x16 1024x768    256/256K  .   A000 Trident TVGA 8900, Zymos
  1425.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [9]
  1426.  63h = T 132x44     8x8      .     16/64      5   B800 Quadram Ultra VGA
  1427.      = T 132x44     8x8      .     16      .    .  Genoa 6400
  1428.      = T 132x44     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1429.      = G    .      .    720x540     16      .    .  MORSE VGA
  1430.      = G    .      .    720x540     16      .    .  Cirrus 510/520 chipset
  1431.      = G 100x42     8x14  800x600    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1432.      = G 100x42     8x14  800x600    256      .   A000 ATI Ultra 8514A,ATI XL
  1433.      = G    .      .    800x600    32K      .   A000 WD90C
  1434.      = G    .      .    800x600    32K      .   A000 Diamond Speedstar 24X
  1435.      = G 128x48     7x16 1024x768    256      1   A000 Ahead B (1MB)
  1436.      = G    .      .   1024x768      2      .    .  Video7 V-RAM VGA
  1437.  64h = T 132x60     8x8      .     16      .    .  Genoa 6400
  1438.      = G    .      .    640x480    64K      .   A000 Cirrus CL-GD 5422/5426
  1439.      = G    .      .    800x600     16      .    .  MORSE VGA
  1440.      = G    .      .    800x600     16      .    .  Cirrus 510/520 chipset
  1441.      = G    .      .    800x600    ???      .    .  SAMPO-Mira VGA
  1442.      = G    .      .   1024x768      4      .    .  Video7 V-RAM VGA
  1443.      = G 128x48     8x16 1024x768    256      .   A000 ATI VGA Wonder Plus,ATI XL
  1444.      = G 160x64     8x16 1280x1024     16/256K  .   A000 WD90C [1]
  1445.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Diamond Speedstar 24X [1]
  1446.  65h = G    .      .    800x600    64K      .   A000 Cirrus CL-GD 5422/5426
  1447.      = G    .      .   1024x768     16      .    .  Video7 V-RAM VGA
  1448.      = G 128x48     8x16 1024x768     16      .   A000 ATI VGA Wonder
  1449.  66h = T  80x50     8x8   640x400     16/256K  .   B800 WD90C
  1450.      = T  80x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1451.      = G    .      .    640x400    256      .    .  Tatung VGA
  1452.      = G    .      .    640x400    256      .    .  Video7 V-RAM VGA
  1453.      = G    .      .    640x480    32K      .   A000 Cirrus CL-GD 5422/5426
  1454.  67h = T  80x43     8x8   640x344     16/256K  .   B800 WD90C
  1455.      = T  80x43     8x8      .     16      .   B800 Diamond Speedstar 24X
  1456.      = G    .      .    640x480    256      .    .  Video7 V-RAM VGA
  1457.      = G    .      .    800x600    32K      .   A000 Cirrus CL-GD 5422/5426
  1458.      = G 128x48     8x16 1024x768      4      .   A000 ATI VGA Wonder
  1459.      = G 160x64     8x16 1280x1024     16      .   A000 NCR 77C22 [1,9]
  1460.  68h = G  80x25     8x16  640x400      .      .   A000 Diamond Stealth64 Video 2xx1
  1461.  69h = T 132x50     8x8  1056x400     16/256K  .   B800 WD90C
  1462.      = T 132x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1463.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1464.      = G    .      .    720x540    256      .   A000 Video7 V-RAM VGA
  1465.  6Ah = G    .      .    800x600     16      .   A000 VESA standard interface
  1466.      = G 100x75     8x8   800x600     16      .   A000 Genoa 6400
  1467.      = G 100x75     8x8   800x600     16      .   A000 Diamond Speedstar 24X
  1468.      = G    .      .    800x600     16      .   A000 Ahead A
  1469.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (VESA) [see 71h]
  1470.      = G    .      .    800x600     16      .    .  Zymos Poach, Hi Res 512
  1471.      = G    .      .    800x600     16      .    .  Epson LT-386SX in CRT Mode
  1472.      = G    .      .    800x600     16      .    .  Compuadd 316SL in CRT Mode
  1473.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1474.      = G 100x37     8x16  800x600     16      .   A000 Diamond Stealth64 Video 2xx1
  1475.      = G 100x42     8x14  800x600      .      .   A000 ATI VGA Wonder (undoc)
  1476.      = G    .      .    800x600     16      .   A000 Chips&Technologies chipset
  1477.      = G 160x64     8x16 1280x1024 256      .   A000 NCR 77C22 [1,9]
  1478.  6Bh = T 100x37     8x16      .     16      .    .  Genoa 6400
  1479.      = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1480.      = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1481.  6Ch = G  80x30     8x16  640x480     16M      .   A000 Trident 8900CL/BIOS C04
  1482.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1483.      = G 128x48     8x16 1024x768      2      .   A000 Diamond Stealth64 Video 2xx1
  1484.      = G 160x60     8x16 1280x960     16/256K  .   A000 WD90C [1]
  1485.      = G 160x60     8x16 1280x960     16/256K  .   A000 Diamond Speedstar 24X [1]
  1486.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1487.  6Dh = G  80x25     8x14  640x350     64K      .   A000 STB Lightspeed ET4000/W32P
  1488.      = G 128x48     8x16 1024x768      .      .   A000 Diamond Stealth64 Video 2xx1
  1489.      = G 160x64     8x16 1280x1024 256/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1490.  6Eh = G  40x25     8x8   320x200     64K      .   A000 Cirrus CL-GD 5422/5426
  1491.      = G 160x64     8x16 1280x1024      2      .   A000 Diamond Stealth64 Video 2xx1
  1492.  6Fh = G  40x25     8x8   320x200     16M      .   A000 Cirrus CL-GD 5422/5426
  1493.      = G 160x64     8x16 1280x1024      .      .   A000 Diamond Stealth64 Video 2xx1
  1494.  70h =    extended mode set (see AX=0070h)    .  Everex Micro Enhancer EGA
  1495.      = T  40x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1496.      = T  40x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1497.      = G    .      .    360x480    256      .    .  Cirrus 510/520/5320 chips
  1498.      = G  90x28     8x14  720x392     16      1   A000 Ahead B
  1499.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1500.      = G    .      .    800x600     16      .    .  C&T chipset, Cardinal
  1501.      = G    .      .   1024x480    256      .   A000 Trident 8900C BIOS C3.0
  1502.  71h = T  80x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1503.      = T  80x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1504.      = G    .      .    528x400    256      .    .  Cirrus 510/520 chipset
  1505.      = G  80x30     8x16  640x480     16M      .   A000 Cirrus CL-GD 5422/5426
  1506.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1507.      = G 100x35     8x16  800x600     16/64      .   A000 NSI Smart EGA+
  1508.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (same as 6Ah)
  1509.      = G    .      .    960x720     16      .    .  C&T chipset, Cardinal
  1510.      = G    .      .   1024x480    256      .   A000 Trident 8900C BIOS C3.0
  1511.  72h = T  80x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1512.      = T  80x60     8x8      .     16      .   B800 Genoa 6400
  1513.      = T  80x60     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1514.      = G    .      .    528x480    256      .    .  Cirrus 510/520 chipset
  1515.      = G  80x25     8x19  640x480     16      1   A000 DOS/V w/ any VGA
  1516.      = G  80x30     8x16  640x480      .      .   A000 Diamond Stealth64 Video 2xx1
  1517.      = G    .      .    640x480    32K      .   A000 ATI
  1518.      = G    .      .    640x480    16M      .   A000 WD90C
  1519.      = G    .      .    640x480    16M      .   A000 Diamond Speedstar 24X
  1520.      = G    .      .   1024x768     16      .    .  C&T chipset, Cardinal
  1521.  73h = G  80x60     8x8   640x480     16      .   A000 Quadram Ultra VGA
  1522.      = G  80x60     8x8   640x480     16      .    .  Genoa 6400
  1523.      = G  80x60     8x8   640x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1524.      = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1525.      = T  80x25     8x19  640x475     16      1   none DOS/V, emulated in VGA graph
  1526.  74h = T  80x66     8x8      .     16      .   B800 Quadram Ultra VGA
  1527.      = T  80x66     8x8      .     16      .   B800 Genoa 6400
  1528.      = T  80x66     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1529.      = G    .      .    640x400      2      .   B800 Toshiba 3100 AT&T mode
  1530.      = G  80x30     8x16  640x480     32K      .   A000 Trident 8900C/BIOS C03
  1531.      = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1532.      = G 128x48     8x16 1024x768     16      1   A000 Ahead A, Ahead B (512K)
  1533.      = G    .      .   1024x768     64K      .   A000 Cirrus CL-GD 5422/5426 [1]
  1534.  75h = G  80x30     8x16  640x480     64K      .   A000 Trident 8900C/BIOS C03
  1535.      = G  80x66      .    640x528     16???      .   A000 Quadram Ultra VGA
  1536.      = G  80x66      .    640x528     16      .    .  Genoa SuperEGA BIOS 3.0+
  1537.      = G 100x37     8x16  800x600      .      .   A000 Diamond Stealth64 Video 2xx1
  1538.      = G 128x48     8x16 1024x768      4      1   A000 Ahead B
  1539.  76h = T  94x29     8x14      .     16      .   B800 Quadram Ultra VGA
  1540.      = T  94x29     8x14      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1541.      = G 100x75     8x8   800x600     32K      .   A000 Trident 8900C/BIOS C03
  1542.      = G 128x48     8x16 1024x768      2      1   A000 Ahead B
  1543.      = G 128x48     8x16 1024x768      .      .   A000 Diamond Stealth64 Video 2xx1
  1544.  77h = G  94x29      .    752x410     16???      .   A000 Quadram Ultra VGA
  1545.      = G  94x29      .    752x410     16      .    .  Genoa SuperEGA BIOS 3.0+
  1546.      = G 100x75     8x8   800x600     64K      .   A000 Trident 8900C/BIOS C03
  1547.      = G 128x48     8x16 1024x768      .      .   A000 Diamond Stealth64 Video 2xx1
  1548.  78h = T 100x37     8x16      .     16      .    .  Genoa 6400
  1549.      = T 100x75     8x8      .     16      .   B800 Quadram Ultra VGA
  1550.      = T 100x75     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1551.      = G    .      .    640x400    256      .    .  STB VGA/EM-16 Plus
  1552.      = G    .      .    640x400    256      .    .  Cardinal, C&T chipset
  1553.      = G    .      .    640x400    256      .    .  Cirrus 5320 chipset
  1554.  79h = G    .      .    640x480    256      .    .  Cardinal, C&T chipset
  1555.      = G 100x75      .    800x600     16???      .   A000 Quadram Ultra VGA
  1556.      = G 100x75     8x8   800x600     16      .    .  Genoa SuperEGA BIOS 3.0+
  1557.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1558.  7Ah = T 114x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1559.      = T 114x60     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1560.      = G    .      .    720x540    256      .    .  C&T chipset, Cardinal
  1561.  7Bh = G    .      .    800x600    256      .    .  C&T chipset, Cardinal
  1562.      = G 114x60      .    912x480     16???      .   A000 Quadram Ultra VGA
  1563.      = G    .      .    912x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1564.  7Ch = G    .      .    512x512     16      .    .  Genoa
  1565.      = G    .      .    800x600    256      .    .  C&T 82C453 chipset
  1566.      = G 200x75     8x16 1600x1200      . [16]  .   A000 Diamond Stealth64 Video 2xx1
  1567.  7Dh = G  64x32     8x16  512x512    256      .    .  Genoa
  1568.  7Eh =    special mode set (see AX=007Eh)        .  Paradise VGA, AT&T VDC600
  1569.      = G  80x25     8x16  640x400    256      .    .  Genoa 6400
  1570.      = G    .      .   1024x768    256      .    .  C&T 82C453 chipset
  1571.      = G  90x43      .      .    mono      .   B000 HERCULES.COM on HGC [14]
  1572.  7Fh =    special function set (see AX=007Fh/BH=00h) Paradise VGA, AT&T VDC600
  1573.      = G 128x48     8x16 1024x768      4      .    .  Genoa 6400
  1574.      = G  90x29      .      .    mono      .   B000 HERCULES.COM on HGC [14]
  1575.  82h = T  80x25      .      .    B&W      .    .  AT&T VDC overlay mode [6]
  1576.  83h = T  80x25      .      .      .      .    .  AT&T VDC overlay mode [6]
  1577.  86h = G    .      .    640x200    B&W      .    .  AT&T VDC overlay mode [6]
  1578.  88h = G  90x43     8x8   720x348    mono      .   B000 Hercules + MSHERC.COM
  1579.  C0h = G    .      .    640x400    2/prog palette    .  AT&T VDC overlay mode [6]
  1580.      = G    .      .    640x400    2/prog palette    .  Olivetti Quaderno overlay
  1581.  C4h =    disable output      .      .      .    .  AT&T VDC overlay mode [6]
  1582.  C8h = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno overlay
  1583.  D0h = G    .      .    640x400      2      .   B800 DEC VAXmate AT&T mode
  1584. Notes:
  1585. [1] interlaced only
  1586. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1587.       SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1588.       otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1589.       color) 132x25 character mode.
  1590.     for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1591.       resident
  1592. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1593. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1594.       22h is page 1) even if there is no Hercules graphics board installed
  1595. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1596. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1597.       40h, or 44h
  1598. [7] BIOS text support is broken in this undocumented mode; scrolling moves
  1599.       only about 1/3 of the screen (and does even that portion incorrectly),
  1600.       while screen clears only clear about 3/4.
  1601. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1602.       may choose to use only partially or not at all; thus, not all Oak boards
  1603.       support all "Oak" modes listed here
  1604. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1605.       precluding the use of a monochrome adapter in the same system
  1606. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1607.       v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1608.       09/14/90 version
  1609. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1610.       installation check for HERKULES.COM is the signature "Herkules" two
  1611.       bytes beyond the INT 10 handler
  1612. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into
  1613.       modes 21h or 27h; this version of the BIOS also sets the BIOS data area
  1614.       incorrectly for extended text modes, resulting in scrolling after only
  1615.       24 lines (the VMODE.EXE    utility does set the data area correctly)
  1616. [13] The Tandy 1000SL/TL BIOS does not actually support this mode
  1617. [14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
  1618.       graphics cards by Soft Warehouse, Inc.  Its installation check is to
  1619.       test whether the word preceding the INT 10 handler is 4137h.
  1620. [15] The Hercules-graphics video modes for HERCBIOS (shareware by Dave
  1621.       Tutelman) may be changed by a command-line switch; the 90x43
  1622.       character-cell mode's number is always one higher than the 90x29 mode
  1623.       (whose default is mode 08h)
  1624. [16] Stealth64 Video 2001-series BIOS v1.03 reports 76 lines for mode 7Ch,
  1625.       resulting in incorrect scrolling for TTY output (scrolling occurs only
  1626.       after the end of the 76th line, which is not displayed)
  1627. SeeAlso: #0010,#0081,#0116
  1628. Index:    video modes
  1629. Index:    installation check;HERKULES|installation check;HERCULES.COM
  1630. --------V-100070-----------------------------
  1631. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1632.     AX = 0070h
  1633.     BL = mode (see #0010)
  1634. Desc:    specify a proprietary display mode on the Everex Micro Enhancer or
  1635.       Viewpoint video adapters
  1636. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1637.  
  1638. (Table 0010)
  1639. Values for Everex video mode:
  1640.      text/ text pixel    pixel    colors disply scrn monitor    adapter
  1641.      grph resol     box  resolution       pages  addr
  1642.  00h = G    .      .    640x480     16      .    .  multisync  EGA,VGA
  1643.  01h = G    .      .    752x410     16      .    .  multisync  EGA,VGA
  1644.  02h = G    .      .    800x600     16      .    .  multisync  EGA,VGA
  1645.  03h = T  80x34      .      .      .      .    .  multisync  EGA,VGA
  1646.  04h = T  80x60      .      .      .      .    .  multisync  EGA,VGA
  1647.  05h = T  94x29      .      .      .      .    .  multisync  EGA only
  1648.  06h = T  94x51      .      .      .      .    .  multisync  EGA only
  1649.  07h = T 100x43     8x14      .     16      .    .  .          VGA only
  1650.  08h = T 100x75     8x8      .     16      .    .  .          VGA only
  1651.  09h = T  80x44      .      .      .      .    .  EGA          EGA only
  1652.  0Ah = T 132x25      .      .      .      .    .  EGA          EGA,VGA
  1653.  0Bh = T 132x44      .      .      .      .    .  EGA          EGA,VGA
  1654.  0Ch = T 132x25      .      .      .      .    .  CGA          EGA only
  1655.  0Dh = T  80x44      .      .      .      .    .  mono          EGA only
  1656.  0Eh = T 132x25      .      .      .      .    .  mono
  1657.  0Fh = T 132x44      .      .      .      .    .  mono
  1658.  10h =    reserved
  1659.  11h = G    .      .   1280x350      4      .    .  .          EGA only
  1660.  12h = G    .      .   1280x600      4      .    .  .          EGA only
  1661.  13h = G    .      .    640x350    256      .    .  .          EGA,EV673
  1662.  14h = G    .      .    640x400    256      .    .  .
  1663.  15h = G    .      .    512x480    256      .    .  .
  1664.  16h = T  80x30     8x16      .    256      .    .  .          VGA only
  1665.  18h = T 100x27     8x16      .     16      .    .  .          VGA only
  1666.  20h = G    .      .   1024x768     16      .    .  .          Everex 629,678
  1667.         .      .      .      .      .    .  .          Everex EV-673
  1668.  21h = T 160x64     8x16 1280x1024     16      .    .  .          1MB VGA only
  1669.  30h = G    .      .    640x480    256      .    .  .          Everex 629,678
  1670.         .      .      .      .      .    .  .          Everex EV-673
  1671.  31h = G    .      .    800x600    256      .    .  .          Everex 629,678
  1672.         .      .      .      .      .    .  .          Everex EV-673
  1673.  32h = G 128x48     8x16 1024x768    256      .    .  .          1MB VGA only
  1674.  40h = T 132x30     8x16      .     16      .    .  .          VGA only
  1675.  50h = T 132x32     8x16      .    mono      .    .  .          VGA only
  1676.  62h = G  40x25     8x8   320x200    32K      .    .  .          Vwpt TC (EV629)
  1677.  70h = G  64x30     8x16  512x480    32K      .    .  .          Viewpoint TC
  1678.  71h = G  80x30     8x16  640x480    32K      .    .  .          Viewpoint TC
  1679.  76h = G  64x30     8x16  512x480    16M      .    .  .          Viewpoint TC
  1680.  77h = G  80x30     8x16  640x480    16M      .    .  .          Viewpoint TC
  1681. SeeAlso: #0009,#0116
  1682. Index:    video modes;Everex
  1683. --------V-10007E-----------------------------
  1684. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1685.     AX = 007Eh
  1686.     BX = horizontal dimension of the mode desired
  1687.     CX = vertical dimension of the mode desired
  1688.         (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1689.     DX = number of colors of the mode desired (0000h for monochrome modes)
  1690. Return: BH = 7Eh if successful (Paradise VGA)
  1691.     AL = 7Eh if successful (AT&T VDC600)
  1692. Desc:    specify a display mode by resolution rather than mode number
  1693. SeeAlso: AH=00h,AX=0070h,AX=007Fh/BH=00h,AX=6F05h,AH=FFh"GO32"
  1694. Index:    video modes;Paradise|video modes;AT&T
  1695. --------V-10007FBH00-------------------------
  1696. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
  1697.     AX = 007Fh
  1698.     BH = 00h
  1699. Return: AL = 7Fh if successful (AT&T VDC600)
  1700.     BH = status (Paradise/Dell)
  1701.         00h invalid function
  1702.         7Fh successful
  1703. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1704. --------V-10007FBH01-------------------------
  1705. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
  1706.     AX = 007Fh
  1707.     BH = 01h
  1708. Return: AL = 7Fh if successful (AT&T VDC600)
  1709.     BH = status (Paradise/Dell)
  1710.         00h invalid function
  1711.         7Fh successful
  1712. Note:    color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
  1713.       mode 7 will set non-VGA MDA/Hercules operation
  1714. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
  1715. --------V-10007FBH02-------------------------
  1716. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
  1717.     AX = 007Fh
  1718.     BH = 02h
  1719. Return: AL = 7Fh if successful (AT&T VDC600)
  1720.     BH = status (Paradise/Dell)
  1721.         00h invalid function
  1722.         7Fh successful
  1723.     ---if successful---
  1724.     BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1725.     CH = total video RAM size in 64k byte units
  1726.     CL = video RAM used by the current mode
  1727. Note:    under Novell DOS 7 TaskMgr Multitasker, this call always returns 0K
  1728.       video memory in CX
  1729. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=01h
  1730. --------V-10007FBH03-------------------------
  1731. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - LOCK CURRENT MODE
  1732.     AX = 007Fh
  1733.     BH = 03h
  1734. Return: AL = 7Fh if successful (AT&T VDC600)
  1735.     BH = status (Paradise/Dell)
  1736.         00h invalid function
  1737.         7Fh successful
  1738. Desc:    allows current mode (VGA or non-VGA) to survive re-boot
  1739. SeeAlso: AX=007Eh,AX=007Fh/BH=04h,AX=007Fh/BH=06h,AH=FFh"Oak"
  1740. --------V-10007FBH04-------------------------
  1741. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MDA EMULATION MODE
  1742.     AX = 007Fh
  1743.     BH = 04h
  1744. Return: AL = 7Fh if successful (AT&T VDC600)
  1745.     BH = status (Paradise/Dell)
  1746.         00h invalid function
  1747.         7Fh successful
  1748. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
  1749. --------V-10007FBH05-------------------------
  1750. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER CGA EMULATION MODE
  1751.     AX = 007Fh
  1752.     BH = 05h
  1753. Return: AL = 7Fh if successful (AT&T VDC600)
  1754.     BH = status (Paradise/Dell)
  1755.         00h invalid function
  1756.         7Fh successful
  1757. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=04h,AH=FFh"Oak"
  1758. --------V-10007FBH06-------------------------
  1759. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MONOCHROME VGA MODE
  1760.     AX = 007Fh
  1761.     BH = 06h
  1762. Return: AL = 7Fh if successful (AT&T VDC600)
  1763.     BH = status (Paradise/Dell)
  1764.         00h invalid function
  1765.         7Fh successful
  1766. Note:    this function also switches to video mode 7
  1767. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=07h,AH=FFh"Oak"
  1768. --------V-10007FBH07-------------------------
  1769. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER COLOR VGA MODE
  1770.     AX = 007Fh
  1771.     BH = 07h
  1772. Return: AL = 7Fh if successful (AT&T VDC600)
  1773.     BH = status (Paradise/Dell)
  1774.         00h invalid function
  1775.         7Fh successful
  1776. Note:    this function also switches to video mode 3
  1777. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=06h,AH=FFh"Oak"
  1778. --------V-10007F-----------------------------
  1779. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED DATA REGISTER ACCESS
  1780.     AX = 007Fh
  1781.     BH = function
  1782.         0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1783.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1784.         BL = value to set in the paradise register
  1785.         1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1786.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1787.         Return: BL = value of the paradise register
  1788.             BH = 7Fh if successful
  1789.         29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
  1790. Return: AL = 7Fh if successful (AT&T VDC600)
  1791.     BH = status (Paradise/Dell)
  1792.         00h invalid function
  1793.         7Fh successful
  1794. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
  1795. --------V-10007FBH60-------------------------
  1796. INT 10 - Paradise VGA - ???
  1797.     AX = 007Fh
  1798.     BH = 60h
  1799.     BL = ??? (00h-13h)
  1800.     ???
  1801. Return: BH = status (00h failed or not supported, 7Fh successful)
  1802.     ???
  1803. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1804. SeeAlso: AX=007Fh/BH=61h
  1805. --------V-10007FBH61-------------------------
  1806. INT 10 - Paradise VGA - ???
  1807.     AX = 007Fh
  1808.     BH = 61h
  1809.     ES:DI -> buffer for list of ??? (see #0011)
  1810. Return: BH = status (00h failed or not supported, 7Fh successful)
  1811.     ???
  1812. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1813. SeeAlso: AX=007Fh/BH=60h
  1814.  
  1815. Format of Paradise VGA list entry:
  1816. Offset    Size    Description    (Table 0011)
  1817.  00h    BYTE    ??? or 00h if end of list
  1818.  01h    BYTE    ???
  1819.  02h    WORD    ???
  1820.  04h    WORD    ???
  1821.  06h    WORD    ???
  1822. --------V-10007FBXA500-----------------------
  1823. INT 10 - Paradise VGA - ???
  1824.     AX = 007Fh
  1825.     BX = A500h
  1826.     ???
  1827. Return: BH = status (00h failed or not supported, 7Fh successful)
  1828.     ???
  1829. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1830. SeeAlso: AX=007Fh/BH=A6h
  1831. --------V-10007FBHA5-------------------------
  1832. INT 10 - Paradise VGA - ???
  1833.     AX = 007Fh
  1834.     BH = A5h
  1835.     BL = ???
  1836.         bits 3-0: ??? (0-4)
  1837.         bits 5,4: ???
  1838.     ???
  1839. Return: BH = status (00h failed or not supported, 7Fh successful)
  1840.     ???
  1841. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1842. --------V-10007FBHA6-------------------------
  1843. INT 10 - Paradise VGA - ???
  1844.     AX = 007Fh
  1845.     BH = A6h
  1846.     ???
  1847. Return: BH = status (00h failed or not supported, 7Fh successful)
  1848.     ???
  1849. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1850. SeeAlso: AX=007Fh/BH=A5h
  1851. --------V-1001-------------------------------
  1852. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1853.     AH = 01h
  1854.     CH = cursor start and options (see #0012)
  1855.     CL = bottom scan line containing cursor (bits 0-4)
  1856. Return: nothing
  1857. Desc:    specify the starting and ending scan lines to be occupied by the
  1858.       hardware cursor in text modes
  1859. Notes:    buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1860.       returns unmapped cursor shape
  1861.     UltraVision scales size to the current font height by assuming 14-line
  1862.       monochrome and 8-line color fonts; this call is not valid if cursor
  1863.       emulation has been disabled
  1864.     applications which wish to change the cursor by programming the
  1865.       hardware directly on EGA or above should call INT 10/AX=1130h or
  1866.       read 0040h:0085h first to determine the current font height
  1867.     on some adapters, setting the end line greater than the number of lines
  1868.       in the font will result in the cursor extending to the top of the
  1869.       next character cell on the right
  1870. BUG:    AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1871.       is not equal to the current video mode
  1872. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h,#3517
  1873.  
  1874. Bitfields for cursor start and options:
  1875. Bit(s)    Description    (Table 0012)
  1876.  7    should be zero
  1877.  6,5    cursor blink
  1878.     (00=normal, 01=invisible, 10=erratic, 11=slow)
  1879.     (00=normal, other=invisible on EGA/VGA)
  1880.  4-0    topmost scan line containing cursor
  1881. --------V-1002-------------------------------
  1882. INT 10 - VIDEO - SET CURSOR POSITION
  1883.     AH = 02h
  1884.     BH = page number
  1885.         0-3 in modes 2&3
  1886.         0-7 in modes 0&1
  1887.         0 in graphics modes
  1888.     DH = row (00h is top)
  1889.     DL = column (00h is left)
  1890. Return: nothing
  1891. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh,MEM 0040h:0050h
  1892. --------V-1003-------------------------------
  1893. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1894.     AH = 03h
  1895.     BH = page number
  1896.         0-3 in modes 2&3
  1897.         0-7 in modes 0&1
  1898.         0 in graphics modes
  1899. Return: AX = 0000h (Phoenix BIOS)
  1900.     CH = start scan line
  1901.     CL = end scan line
  1902.     DH = row (00h is top)
  1903.     DL = column (00h is left)
  1904. Notes:    a separate cursor is maintained for each of up to 8 display pages
  1905.     many ROM BIOSes incorrectly return the default size for a color display
  1906.       (start 06h, end 07h) when a monochrome display is attached
  1907. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h,MEM 0040h:0050h,MEM 0040h:0060h
  1908. --------V-1004-------------------------------
  1909. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  1910.     AH = 04h
  1911. Return: AH = light pen trigger flag
  1912.         00h not down/triggered
  1913.         01h down/triggered
  1914.         DH,DL = row,column of character light pen is on
  1915.         CH = pixel row (graphics modes 04h-06h)
  1916.         CX = pixel row (graphics modes with >200 rows)
  1917.         BX = pixel column
  1918. Desc:    determine the current position and status of the light pen (if
  1919.       present)
  1920. Notes:    on a CGA, returned column numbers are always multiples of 2 (320-
  1921.       column modes) or 4 (640-column modes)
  1922.     returned row numbers are only accurate to two lines
  1923. --------V-1004------------------------------------
  1924. INT 10 - HUNTER 16 - GET CURSOR ADDRESS
  1925.     AH = 04h
  1926.     BH = page
  1927. Return: DH = row (0..24)
  1928.     DL = column (0..79)
  1929.     CH = cursor pixel Y-address (0..199)
  1930.     CL = cursor pixel X-address (0..639)
  1931. Notes:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  1932.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  1933.     pixel coordinates are for the lower left corner of the character cell
  1934.       containing the cursor
  1935. SeeAlso: AH=60h"HUNTER"
  1936. --------V-1005-------------------------------
  1937. INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE
  1938.     AH = 05h
  1939.     AL = new page number (00h to number of pages - 1) (see #0009)
  1940. Return: nothing
  1941. Desc:    specify which of possibly multiple display pages will be visible
  1942. Note:    to determine whether the requested page actually exists, use AH=0Fh
  1943.       to query the current page after making this call
  1944. SeeAlso: AH=0Fh,AH=43h,AH=45h,MEM 0040h:0062h
  1945. --------V-100500-----------------------------
  1946. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - SET GRAPHICS BITMAP BUFFER
  1947.     AX = 0500h
  1948.     BX = segment of buffer
  1949. Return: nothing
  1950. Desc:    set the address of graphics bitmap buffer for video modes 60h and 61h
  1951. SeeAlso: AX=050Fh"Corona"
  1952. --------V-10050F-----------------------------
  1953. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GET GRAPHICS BITMAP BUFFER
  1954.     AX = 050Fh
  1955. Return: DX = segment of graphics bitmap buffer
  1956. Desc:    get the address of graphics bitmap buffer for video modes 60h and 61h
  1957. SeeAlso: AX=0500h"Corona"
  1958. --------V-100580-----------------------------
  1959. INT 10 - VIDEO - PCjr, Tandy 1000 - GET CRT/CPU PAGE REGISTERS
  1960.     AX = 0580h
  1961. Return: BH = CRT page register
  1962.     BL = CPU page register
  1963. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1964.       memory will be mapped at B800h by the hardware
  1965.     the CRT page determines the start address of the memory used by the
  1966.       video controller
  1967. SeeAlso: AH=05h"SET CRT/CPU"
  1968. --------V-1005-------------------------------
  1969. INT 10 - VIDEO - PCjr, Tandy 1000 - SET CRT/CPU PAGE REGISTERS
  1970.     AH = 05h
  1971.     AL = subfunction
  1972.         81h set CPU page register
  1973.         BL = CPU page
  1974.         82h set CRT page register
  1975.         BH = CRT page
  1976.         83h set both CPU and CRT page registers
  1977.         BL = CPU page
  1978.         BH = CRT page
  1979. Return: nothing
  1980. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1981.       memory will be mapped at B800h by the hardware
  1982.     the CRT page determines the start address of the memory used by the
  1983.       video controller
  1984. SeeAlso: AX=0580h
  1985. --------V-1006-------------------------------
  1986. INT 10 - VIDEO - SCROLL UP WINDOW
  1987.     AH = 06h
  1988.     AL = number of lines by which to scroll up (00h = clear entire window)
  1989.     BH = attribute used to write blank lines at bottom of window
  1990.     CH,CL = row,column of window's upper left corner
  1991.     DH,DL = row,column of window's lower right corner
  1992. Return: nothing
  1993. Note:    affects only the currently active page (see AH=05h)
  1994. BUGS:    some implementations (including the original IBM PC) have a bug which
  1995.       destroys BP
  1996.     the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  1997.       scrolling in an SVGA mode (800x600 or higher)
  1998. SeeAlso: AH=07h,AH=12h"Tandy 2000",AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  1999. --------V-1007-------------------------------
  2000. INT 10 - VIDEO - SCROLL DOWN WINDOW
  2001.     AH = 07h
  2002.     AL = number of lines by which to scroll down (00h=clear entire window)
  2003.     BH = attribute used to write blank lines at top of window
  2004.     CH,CL = row,column of window's upper left corner
  2005.     DH,DL = row,column of window's lower right corner
  2006. Return: nothing
  2007. Note:    affects only the currently active page (see AH=05h)
  2008. BUGS:    some implementations (including the original IBM PC) have a bug which
  2009.       destroys BP
  2010.     the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  2011.       scrolling in an SVGA mode (800x600 or higher)
  2012. SeeAlso: AH=06h,AH=12h"Tandy 2000",AH=72h,AH=73h,INT 50/AX=0014h
  2013. --------V-1008-------------------------------
  2014. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  2015.     AH = 08h
  2016.     BH = page number (00h to number of pages - 1) (see #0009)
  2017. Return: AH = character's attribute (text mode only) (see #0013)
  2018.     AH = character's color (Tandy 2000 graphics mode only)
  2019.     AL = character
  2020. Notes:    for monochrome displays, a foreground of 1 with background 0 is
  2021.       underlined
  2022.     the blink bit may be reprogrammed to enable intense background colors
  2023.       using AX=1003h or by programming the CRT controller
  2024.     the foreground intensity bit (3) can be programmed to switch between
  2025.       character sets A and B on EGA and VGA cards, thus enabling 512
  2026.       simultaneous characters on screen.  In this case the bit's usual
  2027.       function (intensity) is regularly turned off.
  2028.     in graphics modes, only characters drawn with white foreground pixels
  2029.       are matched by the pattern-comparison routine
  2030.     on the Tandy 2000, BH=FFh specifies that the current page should be
  2031.       used
  2032. SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
  2033.  
  2034. Bitfields for character's display attribute:
  2035. Bit(s)    Description    (Table 0013)
  2036.  7    foreground blink or (alternate) background bright (see also AX=1003h)
  2037.  6-4    background color (see #0014)
  2038.  3    foreground bright or (alternate) alternate character set (see AX=1103h)
  2039.  2-0    foreground color (see #0014)
  2040. SeeAlso: #0025
  2041.  
  2042. (Table 0014)
  2043. Values for character color:
  2044.     Normal        Bright
  2045.  000b    black        dark gray
  2046.  001b    blue        light blue
  2047.  010b    green        light green
  2048.  011b    cyan        light cyan
  2049.  100b    red        light red
  2050.  101b    magenta        light magenta
  2051.  110b    brown        yellow
  2052.  111b    light gray    white
  2053. --------V-1009-------------------------------
  2054. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  2055.     AH = 09h
  2056.     AL = character to display
  2057.     BH = page number (00h to number of pages - 1) (see #0009)
  2058.         background color in 256-color graphics modes (ET4000)
  2059.     BL = attribute (text mode) or color (graphics mode)
  2060.         if bit 7 set in <256-color graphics mode, character is XOR'ed
  2061.           onto screen
  2062.     CX = number of times to write character
  2063. Return: nothing
  2064. Notes:    all characters are displayed, including CR, LF, and BS
  2065.     replication count in CX may produce an unpredictable result in graphics
  2066.       modes if it is greater than the number of positions remaining in the
  2067.       current row
  2068. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F"SYSTEM DATA"
  2069. SeeAlso: INT 43"VIDEO DATA",INT 44"VIDEO DATA"
  2070. --------V-100A-------------------------------
  2071. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  2072.     AH = 0Ah
  2073.     AL = character to display
  2074.     BH = page number (00h to number of pages - 1) (see #0009)
  2075.         background color in 256-color graphics modes (ET4000)
  2076.     BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
  2077.         if bit 7 set in <256-color graphics mode, character is XOR'ed
  2078.           onto screen
  2079.     CX = number of times to write character
  2080. Return: nothing
  2081. Notes:    all characters are displayed, including CR, LF, and BS
  2082.     replication count in CX may produce an unpredictable result in graphics
  2083.       modes if it is greater than the number of positions remaining in the
  2084.       current row
  2085. SeeAlso: AH=08h,AH=09h,AH=11h"Tandy 2000",AH=4Bh,INT 17/AH=60h
  2086. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA",INT 44"VIDEO DATA"
  2087. --------V-100B--BH00-------------------------
  2088. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  2089.     AH = 0Bh
  2090.     BH = 00h
  2091.     BL = background/border color (border only in text modes)
  2092. Return: nothing
  2093. SeeAlso: AH=0Bh/BH=01h
  2094. --------V-100B--BH01-------------------------
  2095. INT 10 - VIDEO - SET PALETTE
  2096.     AH = 0Bh
  2097.     BH = 01h
  2098.     BL = palette ID
  2099.         00h background, green, red, and brown/yellow
  2100.         01h background, cyan, magenta, and white
  2101. Return: nothing
  2102. Note:    this call was only valid in 320x200 graphics on the CGA, but newer
  2103.       cards support it in many or all graphics modes
  2104. SeeAlso: AH=0Bh/BH=00h,MEM 0040h:0066h
  2105. --------V-100B--BH02-------------------------
  2106. INT 10 - Tandy 2000 - VIDEO - SET PALETTE ENTRY
  2107.     AH = 0Bh
  2108.     BH = 02h
  2109.     BL = palette entry number
  2110.     AL = new color value for palette entry
  2111. Return: nothing
  2112. Note:    this interrupt is identical to INT 52 for Tandy 2000
  2113. SeeAlso: INT 10/AH=00h,INT 10/AH=0Bh/BH=01h,INT 52"Tandy 2000"
  2114. --------V-100C-------------------------------
  2115. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  2116.     AH = 0Ch
  2117.     BH = page number
  2118.     AL = pixel color
  2119.         if bit 7 set, value is XOR'ed onto screen except in 256-color modes
  2120.     CX = column
  2121.     DX = row
  2122. Return: nothing
  2123. Desc:    set a single pixel on the display in graphics modes
  2124. Notes:    valid only in graphics modes
  2125.     BH is ignored if the current video mode supports only one page
  2126. SeeAlso: AH=0Dh,AH=46h
  2127. --------V-100D-------------------------------
  2128. INT 10 - VIDEO - READ GRAPHICS PIXEL
  2129.     AH = 0Dh
  2130.     BH = page number
  2131.     CX = column
  2132.     DX = row
  2133. Return: AL = pixel color
  2134. Desc:    determine the current color of the specified pixel in grahics modes
  2135. Notes:    valid only in graphics modes
  2136.     BH is ignored if the current video mode supports only one page
  2137. SeeAlso: AH=0Ch,AH=47h
  2138. --------V-100E-------------------------------
  2139. INT 10 - VIDEO - TELETYPE OUTPUT
  2140.     AH = 0Eh
  2141.     AL = character to write
  2142.     BH = page number
  2143.     BL = foreground color (graphics modes only)
  2144. Return: nothing
  2145. Desc:    display a character on the screen, advancing the cursor and scrolling
  2146.       the screen as necessary
  2147. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  2148.       and do the expected things
  2149.     IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  2150.       the current active page
  2151. SeeAlso: AH=02h,AH=0Ah
  2152. --------b-100E--CXABCD-----------------------
  2153. INT 10 - V20-XT-BIOS - TELETYPE OUTPUT WITH ATTRIBUTE
  2154.     AH = 0Eh
  2155.     CX = ABCDh
  2156.     BP = ABCDh
  2157.     AL = character to write
  2158.     BH = page number
  2159.     BL = foreground color (text modes as well as graphics modes)
  2160. Return: nothing
  2161. Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
  2162.       Koehlmann / c't magazine
  2163. Desc:    display a character on the screen, advancing the cursor and scrolling
  2164.       the screen as necessary
  2165. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  2166.       and do the expected things
  2167. SeeAlso: INT 15/AH=84h"V20-XT-BIOS"
  2168. --------V-100F-------------------------------
  2169. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  2170.     AH = 0Fh
  2171. Return: AH = number of character columns
  2172.     AL = display mode (see #0009 at AH=00h)
  2173.     BH = active page (see AH=05h)
  2174. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  2175.       also have bit 7 set
  2176.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  2177.       (monochrome) in all extended-row text modes
  2178.     HP 200LX returns AL=07h (monochrome) if mode was set to AL=21h
  2179.       and always 80 resp. 40 columns in all text modes regardless of
  2180.       current zoom setting (see AH=D0h)
  2181.     when using a Hercules Graphics Card, additional checks are necessary:
  2182.         mode 05h: if WORD 0040h:0063h is 03B4h, may be in graphics page 1
  2183.           (as set by DOSSHELL and other Microsoft software)
  2184.         mode 06h: if WORD 0040h:0063h is 03B4h, may be in graphics page 0
  2185.           (as set by DOSSHELL and other Microsoft software)
  2186.         mode 07h: if BYTE 0040h:0065h bit 1 is set, Hercules card is in
  2187.           graphics mode, with bit 7 indicating the page (mode set by
  2188.           Hercules driver for Borland Turbo C)
  2189.     the Tandy 2000 BIOS is only documented as returning AL, not AH or BH
  2190. SeeAlso: AH=00h,AH=05h,AX=10F2h,AX=1130h,AX=CD04h
  2191. --------V-100F56BX4756-----------------------
  2192. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  2193.     AX = 0F56h
  2194.     BX = 4756h
  2195.     CX = 4944h
  2196.     DL = function
  2197.         01h installation check
  2198.         Return: AX = 5649h
  2199.             BX = 4443h
  2200.             CX = 5647h
  2201.             DH = 01h
  2202.         02h get first video mode's parameters
  2203.         Return: AX = BIOS mode number
  2204.             BX = width in pixels
  2205.             CX = height in pixels
  2206.             DX = number of colors
  2207.         03h get next video mode's parameters
  2208.         Return: as for DL=02h
  2209.         04h display line???
  2210.         ES:DI -> record (see #0015)
  2211.         ???
  2212.         Return: ???
  2213. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  2214. Note:    the use of TSR display drivers was discontinued after v2.20
  2215. Index:    installation check;VUIMAGE display driver
  2216.  
  2217. Format of record for VUIMAGE Function 04h:
  2218. Offset    Size    Description    (Table 0015)
  2219.  00h    WORD    row number
  2220.  02h    WORD    starting column???
  2221.  04h    WORD    ending column???
  2222.     ???
  2223. --------V-100F--SIF123-----------------------
  2224. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  2225.     AH = 0Fh
  2226.     SI = F123h
  2227.     DI = 321Fh
  2228. Return: AH = number of character columns
  2229.     AL = display mode (see #0009 at AH=00h)
  2230.     BH = active page (see AH=05h)
  2231.     SI = DI = F345h if installed
  2232. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  2233.       also have bit 7 set
  2234.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  2235.       (monochrome) in all extended-row text modes
  2236. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  2237. --------V-1010-------------------------------
  2238. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  2239.     AH = 10h
  2240.     CH,CL = row,column of upper left corner of window
  2241.     DH,DL = row,column of lower right corner of window
  2242. Return: AL = status
  2243.         00h successful
  2244.         01h failed
  2245.     AH destroyed
  2246. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2247. Note:    when a window has been set, all output via AH=0Eh is restricted to
  2248.       the specified window
  2249. SeeAlso: AH=11h"Window",AH=12h"Window"
  2250. --------V-1010-------------------------------
  2251. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  2252.     AH = 10h
  2253.     AL = speed
  2254.         00h fast
  2255.         01h slow (scrolling only moves characters during vertical retrace)
  2256. Return: AH = previous speed
  2257. --------V-1010-------------------------------
  2258. INT 10 - Tandy 2000 - VIDEO - GET/SET CHARACTER FONTS
  2259.     AH = 10h
  2260.     AL = control value
  2261.         bit 0: set character set instead of reading it
  2262.         bit 1: high 128 characters instead of low 128 characters
  2263.     ES:BX -> new character set if AL bit 0 set
  2264. Return: ES:BX -> current character set if AL bit 0 clear on entry
  2265. Notes:    this interrupt is identical to INT 52 on Tandy 2000
  2266.     the character set consists of 16 bytes for each of the 128 characters,
  2267.       where each of the 16 bytes describes the pixels in one scan line,
  2268.       most significant bit leftmost
  2269. SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
  2270. SeeAlso: INT 52"Tandy 2000"
  2271. --------V-101000-----------------------------
  2272. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
  2273.     AX = 1000h
  2274.     BL = palette register number (00h-0Fh)
  2275.        = attribute register number (undocumented) (see #0016)
  2276.     BH = color or attribute register value
  2277. Return: nothing
  2278. Notes:    on MCGA, only BX = 0712h is supported
  2279.     under UltraVision, the palette locking status (see AX=CD01h)
  2280.       determines the outcome
  2281. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  2282.  
  2283. (Table 0016)
  2284. Values for attribute register number:
  2285.  10h    attribute mode control register (should let BIOS control this)
  2286.  11h    overscan color register (see also AX=1001h)
  2287.  12h    color plane enable register (bits 3-0 enable corresponding
  2288.       text attribute bit)
  2289.  13h    horizontal PEL panning register
  2290.  14h    color select register
  2291. --------V-101001-----------------------------
  2292. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
  2293.     AX = 1001h
  2294.     BH = border color (00h-3Fh)
  2295. Return: nothing
  2296. BUG:    the original IBM VGA BIOS incorrectly updates the parameter save area
  2297.       and places the border color at offset 11h of the palette table
  2298.       rather than offset 10h
  2299. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  2300.       determines the outcome
  2301. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  2302. --------V-101002-----------------------------
  2303. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
  2304.     AX = 1002h
  2305.     ES:DX -> palette register list (see #0017)
  2306.     BH = 00h to avoid problems on some adapters
  2307. Return: nothing
  2308. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  2309.       determines the outcome
  2310. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  2311.  
  2312. Format of palette register list:
  2313. Offset    Size    Description    (Table 0017)
  2314.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  2315.  10h    BYTE    border color
  2316. SeeAlso: #0380
  2317. --------V-101003-----------------------------
  2318. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  2319.     AX = 1003h
  2320.     BL = new state
  2321.         00h background intensity enabled
  2322.         01h blink enabled
  2323.     BH = 00h to avoid problems on some adapters
  2324. Return: nothing
  2325. Notes:    although there is no function to get the current status on adapters
  2326.       prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  2327.       VGA, use AH=1Bh and check offset 2Dh of the returned data (see #0038)
  2328.     when configured for a monochrome display, the Boca Research Multi-EGA
  2329.       with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  2330.     this call is reported to be "Get Cursor Position" on the Tandy
  2331.       1000SL/TL
  2332. SeeAlso: AH=08h,AH=1Bh
  2333. --------V-101007-----------------------------
  2334. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  2335.     AX = 1007h
  2336.     BL = palette or attribute (undoc) register number (see #0016)
  2337. Return: BH = palette or attribute register value
  2338. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2339.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2340.       registers will cause incorrect results because the EGA registers are
  2341.       write-only.  To guard against older versions or unsupported video
  2342.       modes, programs which expect to use this function on EGA systems
  2343.       should set BH to FFh on entry.
  2344. SeeAlso: AX=1000h,AX=1009h
  2345. --------V-101008-----------------------------
  2346. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  2347.     AX = 1008h
  2348. Return: BH = border color (00h-3Fh)
  2349. Note:    (see AX=1007h)
  2350. SeeAlso: AX=1001h
  2351. --------V-101009-----------------------------
  2352. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  2353.     AX = 1009h
  2354.     ES:DX -> 17-byte buffer for palette register list (see #0017)
  2355. Return: nothing
  2356. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2357.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2358.       registers will cause incorrect results because the EGA registers are
  2359.       write-only.  To guard against older versions or unsupported video
  2360.       modes, programs which expect to use this function on EGA systems
  2361.       should set the ES:DX buffer to FFh before calling.
  2362. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  2363. --------V-101010-----------------------------
  2364. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2365.     AX = 1010h
  2366.     BX = register number
  2367.     CH = new value for green (0-63)
  2368.     CL = new value for blue (0-63)
  2369.     DH = new value for red (0-63)
  2370. Return: nothing
  2371. SeeAlso: AX=1012h,AX=1015h
  2372. --------V-101012-----------------------------
  2373. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  2374.     AX = 1012h
  2375.     BX = starting color register
  2376.     CX = number of registers to set
  2377.     ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  2378.          byte each of red, green and blue (0-63)
  2379. Return: nothing
  2380. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  2381. --------V-101013-----------------------------
  2382. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  2383.     AX = 1013h
  2384.     BL = subfunction
  2385.         00h select paging mode
  2386.         BH = 00h select 4 blocks of 64
  2387.         BH = 01h select 16 blocks of 16
  2388.         01h select page
  2389.         BH = page number (00h to 03h) or (00h to 0Fh)
  2390. Return: nothing
  2391. Note:    this function is not valid in mode 13h
  2392. SeeAlso: AX=101Ah
  2393. --------V-101015-----------------------------
  2394. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2395.     AX = 1015h
  2396.     BL = palette register number
  2397. Return: DH = red value
  2398.     CH = green value
  2399.     CL = blue value
  2400.     AX destroyed by some BIOSes
  2401.           (e.g. Tseng ET4000 BIOS v8.00n always returns AX=00C9h)
  2402. SeeAlso: AX=1010h,AX=1017h
  2403. --------V-101017-----------------------------
  2404. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  2405.     AX = 1017h
  2406.     BX = starting palette register
  2407.     CX = number of palette registers to read
  2408.     ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  2409. Return: buffer filled with CX red, green and blue triples
  2410. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  2411. --------V-101018-----------------------------
  2412. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  2413.     AX = 1018h
  2414.     BL = new PEL value
  2415. Return: nothing
  2416. SeeAlso: AX=1019h
  2417. --------V-101019-----------------------------
  2418. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  2419.     AX = 1019h
  2420. Return: BL = value read
  2421. SeeAlso: AX=1018h
  2422. --------V-10101A-----------------------------
  2423. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  2424.     AX = 101Ah
  2425. Return: BL = paging mode
  2426.         00h four pages of 64
  2427.         01h sixteen pages of 16
  2428.     BH = current page
  2429. SeeAlso: AX=1013h
  2430. --------V-10101B-----------------------------
  2431. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  2432.     AX = 101Bh
  2433.     BX = starting palette register
  2434.     CX = number of registers to convert
  2435. Return: nothing
  2436. Desc:    convert the RGB values of one or more palette registers such that the
  2437.       resulting values are grays with the same intensities as the original
  2438.       colors
  2439. SeeAlso: AH=12h/BL=33h
  2440. --------V-1010E0-----------------------------
  2441. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  2442.     AX = 10E0h
  2443.     BL = video mode (see also #0009 at AH=00h)
  2444.         2Eh = 640x480
  2445. Return: ???
  2446. SeeAlso: AH=00h,AX=10F0h
  2447. --------V-1010F0-----------------------------
  2448. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  2449.     AX = 10F0h
  2450.     BL = video mode (see also #0009 at AH=00h)
  2451.         13h = 320x200x32K
  2452.         2Dh = 640x350x32K
  2453.         2Eh = 640x480x32K
  2454.         2Fh = 640x400x32K
  2455.         30h = 800x600x32K
  2456.         3Eh = 640x480x16M (Genoa 7900)
  2457.         FFh Tseng 24-bit color mode
  2458.         BH = mode
  2459.             2Dh = 640x480
  2460.             2Eh = 640x480x16M
  2461.             2Fh = 640x400
  2462.             30h = 800x600
  2463.             38h = 1024x768??? (Tseng ET4000/W32i)
  2464. Return: AL = 10h if supported
  2465.     AH = status
  2466.         00h if successful
  2467.         other on error
  2468. Desc:    switch the display into a graphics mode with 15 or more bits per pixel
  2469. Note:    the Tseng HiColor BIOS extensions are supported by:
  2470.       Diamond Computer Systems    SpeedStar HiColor VGA
  2471.       Everex Systems        HC VGA
  2472.       Focus Information Systems    2theMax 4000
  2473.       Cardinal Technologies        VGA732
  2474.       Orchid ProDesigner IIs    Genoa 7900
  2475. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  2476. Index:    video modes;Tseng Hi-Color
  2477. --------V-1010F1-----------------------------
  2478. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  2479.     AX = 10F1h
  2480. Return: AL = 10h if supported
  2481.     BL = type of digital/analog converter (see #0018)
  2482. Desc:    determine which type of digital-to-analog converter is installed on the
  2483.       display board
  2484. SeeAlso: AX=10F0h,AX=10F2h
  2485.  
  2486. (Table 0018)
  2487. Values for type of DAC:
  2488.  00h normal VGA DAC
  2489.  01h Sierra SC1148x HiColor DAC
  2490.  ---Diamond SpeedStar 24---
  2491.  02h new Sierra SS24 DAC (24-bit)
  2492.  ---generic Tseng BIOS v8+ ---
  2493.  02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
  2494.  03h ATT20c490/1/2 (15/16/24-bit)
  2495.  04h AcuMos ADAC1 (15/16/24-bit)
  2496.  05h unknown 15/16/24-bit DAC
  2497.  06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
  2498.  07h Diamond SS2410 (15/24-bit)
  2499.  08h unknown 15/16/24-bit DAC
  2500.  09h unknown 15/16/24-bit DAC
  2501.  else other HiColor DAC
  2502. --------V-1010F2-----------------------------
  2503. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
  2504.     AX = 10F2h
  2505.     BL = function
  2506.         00h get current HiColor mode
  2507.         01h set 15-bit HiColor mode
  2508.         02h set 16-bit HiColor mode
  2509. Return: AX = 0010h if supported
  2510.         BL = video mode type
  2511.         00h not in HiColor mode
  2512.         01h 15-bit RGB mode
  2513.         02h 16-bit RGB mode
  2514.         03h 24-bit RGB mode
  2515. Desc:    determine whether the display is in a graphics mode with 15 or more
  2516.       bits per pixel color resolution
  2517. Note:    set (BL=01h/02h) only works if already in a HiColor mode
  2518. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  2519. --------V-1011-------------------------------
  2520. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  2521.     AH = 11h
  2522. Return: CH,CL = row,column of upper left corner
  2523.     DH,DL = row,column of lower right corner
  2524. Desc:    determine the portion of the display to which output is restricted
  2525. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2526. SeeAlso: AH=10h"Window",AH=12h"Window"
  2527. --------V-1011-------------------------------
  2528. INT 10 - Tandy 2000 - VIDEO - WRITE ATTRIBUTE ONLY
  2529.     AH = 11h
  2530.     BL = new character attribute (text modes) or color (graphics)
  2531.     CX = number of times to write attribute
  2532. Return: nothing
  2533. Note:    this interrupt is identical to INT 52 on Tandy 2000
  2534. SeeAlso: AH=0Ah,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
  2535. SeeAlso: INT 52"Tandy 2000"
  2536. --------V-101100-----------------------------
  2537. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
  2538.     AX = 1100h
  2539.     ES:BP -> user table
  2540.     CX = count of patterns to store
  2541.     DX = character offset into map 2 block
  2542.     BL = block to load in map 2
  2543.     BH = number of bytes per character pattern
  2544. Return: nothing
  2545. Notes:    This function will cause a mode set, completely resetting
  2546.       the video environment, but without clearing the video buffer
  2547.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2548.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2549.       (see AH=1Bh,#0038)
  2550. SeeAlso: AX=1101h,AX=1102h,AX=1103h,AX=1104h,AX=1110h,AH=1Bh,AX=CD10h
  2551. --------V-101101-----------------------------
  2552. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
  2553.     AX = 1101h
  2554.     BL = block to load
  2555. Return: nothing
  2556. Notes:    (see also AX=1100h)
  2557.     This function will cause a mode set, completely resetting
  2558.       the video environment, but without clearing the video buffer
  2559.     the "monochrome" patters are 8x14 pixels in size
  2560. SeeAlso: AX=1100h,AX=1102h,AX=1103h,AX=1104h,AX=1111h,AH=1Bh,AX=CD10h
  2561. --------V-101102-----------------------------
  2562. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
  2563.     AX = 1102h
  2564.     BL = block to load
  2565. Return: nothing
  2566. Notes:    (see AX=1100h)
  2567. SeeAlso: AX=1100h,AX=1101h,AX=1103h,AX=1104h,AX=1112h,AH=1Bh,AX=CD10h
  2568. --------V-101103-----------------------------
  2569. INT 10 - VIDEO - TEXT-MODE CHARGEN - SET BLOCK SPECIFIER (PS,EGA,VGA)
  2570.     AX = 1103h
  2571.     BL = block specifier (see #0019)
  2572. Return: nothing
  2573. Notes:    (see also AX=1110h)
  2574.     This function allows dual character sets to appear on screen
  2575.       simultaneously
  2576. SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1104h,AH=1Bh,AX=CD10h
  2577.  
  2578. Bitfields for block specifier:
  2579. Bit(s)    Description    (Table 0019)
  2580. ---EGA/MCGA---
  2581.  0,1    block selected by characters with attribute bit 3 clear
  2582.  2,3    block selected by characters with attribute bit 3 set
  2583. ---VGA---
  2584.  0,1,4    block selected by characters with attribute bit 3 clear
  2585.  2,3,5    block selected by characters with attribute bit 3 set
  2586. --------V-101104-----------------------------
  2587. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
  2588.     AX = 1104h
  2589.     BL = block to load
  2590. Return: nothing
  2591. Notes:    (see AX=1100h)
  2592. SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1103h,AX=1114h,AH=1Bh,AX=CD10h
  2593. --------V-1011-------------------------------
  2594. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2595.     AH = 11h
  2596.     AL = 07h load user-specified paterns and recalculate mode parms
  2597.          parameters are the same as for AX=1110h
  2598.     AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2599.          parameters are the same as for AX=1111h
  2600.     AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2601.          parameters are the same as for AX=1112h
  2602.     AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2603.          parameters are the same as for AX=1114h
  2604. Note:    these functions should only be called under the same conditions as
  2605.       AL=1xh (see AX=1110h"EGA")
  2606. SeeAlso: AX=1100h,AX=1110h"CHARGEN",AX=1110h"Realtek"
  2607. --------V-10110F-----------------------------
  2608. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2609.     AX = 110Fh
  2610.     ES:BP -> user table for INT 1F
  2611. Return: nothing
  2612. Note:    this function is meant to be called immediately after a mode set;
  2613.       results are unpredictable at other times
  2614. SeeAlso: AX=1110h"Realtek",AX=1111h"Realtek",AX=1112h"Realtek",AX=1120h
  2615. --------V-101110-----------------------------
  2616. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
  2617.     AX = 1110h
  2618.     ES:BP -> user table
  2619.     CX = count of patterns to store
  2620.     DX = character offset into map 2 block
  2621.     BL = block to load in map 2
  2622.     BH = number of bytes per character pattern
  2623. Return: nothing
  2624. Notes:    This function will cause a mode set, completely resetting
  2625.       the video environment, but without clearing the video buffer
  2626.     This function is designed to be called immediately after a mode set,
  2627.       it is equivalent to AX=110xh except that:
  2628.           Page 0 must be active.
  2629.           Bytes/character is recalculated.
  2630.           Max character rows is recalculated.
  2631.           CRT buffer length is recalculated.
  2632.           CRTC registers are reprogrammed as follows:
  2633.              R09 = bytes/char-1 ; max scan line (mode 7 only)
  2634.              R0A = bytes/char-2 ; cursor start
  2635.              R0B = 0        ; cursor end
  2636.              R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2637.              R14 = bytes/char    ; underline loc
  2638.                (*** BUG: should be 1 less ***)
  2639.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2640.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2641.       (see AH=1Bh,#0038)
  2642. SeeAlso: AX=1100h,AX=1111h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h
  2643. --------V-101110-----------------------------
  2644. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2645.     AX = 1110h
  2646.     ES:BP -> user table
  2647.     CX = bytes per character
  2648.     BL = row specifier
  2649.         00h user set
  2650.         DL = number of rows
  2651.         01h 14 rows
  2652.         02h 25 rows
  2653.         03h 43 rows
  2654. Return: nothing
  2655. Note:    this function is meant to be called immediately after a mode set;
  2656.       results are unpredictable at other times
  2657. SeeAlso: AX=110Fh"Realtek",AX=1112h"Realtek",AX=1121h
  2658. --------V-101111-----------------------------
  2659. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
  2660.     AX = 1111h
  2661.     BL = block to load
  2662. Return: nothing
  2663. Notes:    (see AX=1110h)
  2664.     the "monochrome" patters are 8x14 pixels in size
  2665. SeeAlso: AX=1101h,AX=1110h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h
  2666. --------V-101111-----------------------------
  2667. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2668.     AX = 1111h
  2669.     BL = row specifier (see AX=1121h)
  2670. Return: nothing
  2671. Note:    this function is meant to be called immediately after a mode set;
  2672.       results are unpredictable at other times
  2673. SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1122h
  2674. --------V-101112-----------------------------
  2675. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
  2676.     AX = 1112h
  2677.     BL = block to load
  2678. Return: nothing
  2679. Notes:    (see AX=1110h)
  2680. SeeAlso: AX=1103h,AX=1110h,AX=1111h,AX=1114h,AH=1Bh,AX=CD10h
  2681. --------V-101112-----------------------------
  2682. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2683.     AX = 1112h
  2684.     BL = row specifier (see AX=1121h)
  2685. Return: nothing
  2686. Note:    this function is meant to be called immediately after a mode set;
  2687.       results are unpredictable at other times
  2688. SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1111h"Realtek",AX=1123h
  2689. --------V-101114-----------------------------
  2690. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
  2691.     AX = 1114h
  2692.     BL = block to load
  2693. Return: nothing
  2694. Notes:    (see AX=1110h)
  2695. SeeAlso: AX=1104h,AX=1110h,AX=1111h,AX=1112h,AH=1Bh,AX=CD10h
  2696. --------V-101118-----------------------------
  2697. INT 10 - IBM SurePath BIOS - Officially "Private" Function
  2698.     AX = 1118h
  2699. --------V-101120-----------------------------
  2700. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2701.     AX = 1120h
  2702.     ES:BP -> user table for INT 1F
  2703. Return: nothing
  2704. Note:    this function is meant to be called immediately after a mode set;
  2705.       results are unpredictable at other times
  2706. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F"SYSTEM DATA"
  2707. SeeAlso: INT 43"VIDEO DATA"
  2708. --------V-101121-----------------------------
  2709. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2710.     AX = 1121h
  2711.     ES:BP -> user table
  2712.     CX = bytes per character
  2713.     BL = row specifier
  2714.         00h user set
  2715.         DL = number of rows
  2716.         01h 14 rows
  2717.         02h 25 rows
  2718.         03h 43 rows
  2719. Return: AL = new number of rows (Diamond Stealth64 Video)
  2720. Note:    this function is meant to be called immediately after a mode set;
  2721.       results are unpredictable at other times
  2722. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h"Compaq"
  2723. SeeAlso: AX=1129h"Diamond",INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2724. --------V-101122-----------------------------
  2725. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2726.     AX = 1122h
  2727.     BL = row specifier (see AX=1121h)
  2728. Return: nothing
  2729. Notes:    this function is meant to be called immediately after a mode set;
  2730.       results are unpredictable at other times
  2731.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2732. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h
  2733. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2734. --------V-101123-----------------------------
  2735. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2736.     AX = 1123h
  2737.     BL = row specifier (see AX=1121h)
  2738. Return: nothing
  2739. Notes:    this function is meant to be called immediately after a mode set;
  2740.       results are unpredictable at other times
  2741.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2742. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h
  2743. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2744. --------V-101124-----------------------------
  2745. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2746.     AX = 1124h
  2747.     BL = row specifier (see AX=1121h)
  2748. Return: nothing
  2749. Notes:    this function is meant to be called immediately after a mode set;
  2750.       results are unpredictable at other times
  2751.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2752. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h
  2753. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2754. --------V-101129-----------------------------
  2755. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2756.     AX = 1129h
  2757.     BL = row specifier (see AX=1121h)
  2758. Return: nothing
  2759. Notes:    this function is meant to be called immediately after a mode set;
  2760.       results are unpredictable at other times
  2761.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2762. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM DATA"
  2763. SeeAlso: INT 43"VIDEO DATA"
  2764. --------V-101129-----------------------------
  2765. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (Diamond)
  2766.     AX = 1129h
  2767.     DI:BP -> user table
  2768.     CX = bytes per character
  2769.     BL = row specifier
  2770.         00h user set
  2771.         DL = number of rows
  2772.         01h 14 rows
  2773.         02h 25 rows
  2774.         03h 43 rows
  2775. Return: AL = new number of rows
  2776. Notes:    this function is meant to be called immediately after a mode set;
  2777.       results are unpredictable at other times
  2778.     supported by Diamond Stealth64 Video
  2779. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM",INT 43"VIDEO"
  2780. --------V-101130-----------------------------
  2781. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2782.     AX = 1130h
  2783.     BH = pointer specifier
  2784.         00h INT 1Fh pointer
  2785.         01h INT 43h pointer
  2786.         02h ROM 8x14 character font pointer
  2787.         03h ROM 8x8 double dot font pointer
  2788.         04h ROM 8x8 double dot font (high 128 characters)
  2789.         05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2790.         06h ROM 8x16 font (MCGA, VGA)
  2791.         07h ROM alternate 9x16 font (VGA only) (see #0020)
  2792.         11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2793.         12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2794. Return: ES:BP = specified pointer
  2795.     CX    = bytes/character of on-screen font (not the requested font!)
  2796.     DL    = highest character row on screen
  2797. Note:    for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2798.       8xN font at ES:BP+256N
  2799. BUG:    the IBM EGA and some other EGA cards return in DL the number of rows on
  2800.       screen rather than the highest row number (which is one less).
  2801. SeeAlso: AX=1100h,AX=1103h,AX=1120h,INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2802.  
  2803. Format of alternate font table [array]:
  2804. Offset    Size    Description    (Table 0020)
  2805.  00h    BYTE    character to be replaced (00h = end of table)
  2806.  01h  N BYTEs    graphics data for character, one byte per scan line
  2807. --------V-101130BX4D4F-----------------------
  2808. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2809.     AX = 1130h
  2810.     BX = 4D4Fh
  2811. Return: CX = 4F4Dh if installed
  2812.         ES:BP -> M10_SCR INT 10 handler
  2813. Program: M10_SCR is a shareware extended text mode and font driver by
  2814.       I.V. Morozov
  2815. SeeAlso: INT 16/AX=4D4Fh
  2816. --------V-1012-------------------------------
  2817. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2818.     AH = 12h
  2819. Return: BH = attribute to use on blanked lines when scrolling
  2820. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2821. SeeAlso: AH=11h"Window",AH=12h"Window"
  2822. --------V-1012-------------------------------
  2823. INT 10 - Tandy 2000 - VIDEO - SCROLL WINDOW
  2824.     AH = 12h
  2825.     AL = number of rows or columns to scroll
  2826.     BH = buffer flag
  2827.         00h data in user buffer
  2828.         ES:SI -> buffer containing character/attribute pairs
  2829.         01h no buffer, fill emptied rows/columns with blanks
  2830.     BL = direction in which to scroll
  2831.         00h up
  2832.         01h down
  2833.         02h left
  2834.         03h right
  2835.     CH,CL = row,column of upper left corner of scroll area
  2836.     DH,DL = row,column of lower right corner
  2837. Return: nothing
  2838. Notes:    this interrupt is identical to INT 52 on Tandy 2000
  2839.     the user buffer, if supplied, must be organized by row; regardless of
  2840.       the scroll direction, all character/attribute pairs for the first
  2841.       row are first, then the pairs for the second row, etc.
  2842. SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
  2843. SeeAlso: INT 52"Tandy"
  2844. --------V-1012--BL10-------------------------
  2845. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2846.     AH = 12h
  2847.     BL = 10h
  2848. Return: BH = video state
  2849.         00h color mode in effect (I/O port 3Dxh)
  2850.         01h mono mode in effect (I/O port 3Bxh)
  2851.     BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2852.     CH = feature connector bits (see #0021)
  2853.     CL = switch settings (see #0022,#0023)
  2854.     AH destroyed (at least by Tseng ET4000 BIOS v8.00n)
  2855. Note:    one possible check for the presence of an EGA or later display card
  2856.       is to call this function with BH=FFh; if not present, BH will be
  2857.       unchanged on return
  2858.     another installation check is used by Athena Digital's HGCIBM, which
  2859.       sets CX to FFFFh on calling and checks whether it has been changed
  2860.       on return
  2861. Index:    installation check;EGA
  2862.  
  2863. Bitfields for feature connector bits:
  2864. Bit(s)    Description    (Table 0021)
  2865.  0    FEAT 1 line, state 2
  2866.  1    FEAT 0 line, state 2
  2867.  2    FEAT 1 line, state 1
  2868.  3    FEAT 0 line, state 1
  2869.  4-7    unused (0)
  2870.  
  2871. Bitfields for switch settings:
  2872. Bit(s)    Description    (Table 0022)
  2873.  0    switch 1 OFF
  2874.  1    switch 2 OFF
  2875.  2    switch 3 OFF
  2876.  3    switch 4 OFF
  2877.  4-7    unused
  2878.  
  2879. (Table 0023)
  2880. Values for switch settings on original EGA/VGA:
  2881.  00h        primary MDA/HGC,    secondary EGA+ 40x25
  2882.  01h-03h    primary MDA/HGC,    secondary EGA+ 80x25
  2883.  04h        primary CGA 40x25,    secondary EGA+ 80x25 mono
  2884.  05h        primary CGA 80x25,    secondary EGA+ 80x25 mono
  2885.  06h        primary EGA+ 40x25,    secondary MDA/HGC (optional)
  2886.  07h-09h    primary EGA+ 80x25,    secondary MDA/HGC (optional)
  2887.  0Ah        primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
  2888.  0Bh        primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
  2889. --------V-1012--BL11-------------------------
  2890. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2891.     AH = 12h
  2892.     BL = 11h
  2893. Return: AL = 12h if function supported
  2894.         BL = ??? (10h)
  2895.         ES:BP -> BIOS info structure (see #0024)
  2896. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2897.  
  2898. Format of Trident BIOS Info structure:
  2899. Offset    Size     Description    (Table 0024)
  2900.  00h    BYTE     ??? (0000h)
  2901.  01h    BYTE     OEM Code (00h for original Trident)
  2902.  02h    WORD     ID??? (1073h for 8800BR, 1074 for 8800CS)
  2903.  04h  8 BYTEs     BIOS date ('mm/dd/yy')
  2904.  0Ch    WORD     ???
  2905.  0Eh  8 BYTEs     BIOS Version (' C3-128 ', ' C3-129 ')
  2906. --------V-1012--BL12-------------------------
  2907. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  2908.     AH = 12h
  2909.     BL = 12h
  2910. Return: AL = 12h if function supported
  2911.         AH = number of 256K banks of RAM installed
  2912.           (read from CRTC register 1Fh)
  2913. SeeAlso: AH=12h/BL=11h"TRIDENT"
  2914. --------V-1012--BL20-------------------------
  2915. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  2916.     AH = 12h
  2917.     BL = 20h  select alternate print screen routine
  2918. Return: nothing
  2919. Desc:    installs a PrtSc routine from the video card's BIOS to replace the
  2920.       default PrtSc handler from the ROM BIOS, which usually does not
  2921.       understand screen heights other than 25 lines
  2922. Note:    some adapters disable print-screen instead of enhancing it
  2923. SeeAlso: INT 05"PRINT SCREEN"
  2924. --------V-1012--BL2E-------------------------
  2925. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2926.     AH = 12h
  2927.     BL = 2Eh
  2928. Return: nothing
  2929. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2930.       crash the system on this function
  2931. --------V-1012--BL30-------------------------
  2932. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  2933.     AH = 12h
  2934.     BL = 30h
  2935.     AL = vertical resolution
  2936.          00h 200 scan lines
  2937.          01h 350 scan lines
  2938.          02h 400 scan lines
  2939. Return: AL = 12h if function supported
  2940. Desc:    specify the number of scan lines used to display text modes
  2941. Note:    the specified resolution will take effect on the next mode set
  2942. SeeAlso: AH=00h
  2943. --------V-1012--BL31-------------------------
  2944. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  2945.     AH = 12h
  2946.     BL = 31h
  2947.     AL = new state
  2948.         00h enable default palette loading
  2949.         01h disable default palette loading
  2950. Return: AL = 12h if function supported
  2951. Desc:    specify whether a default palette should be loaded when the display
  2952.       mode is set
  2953. SeeAlso: AH=00h
  2954. --------V-1012--BL32-------------------------
  2955. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  2956.     AH = 12h
  2957.     BL = 32h
  2958.     AL = new state
  2959.         00h enable video addressing
  2960.         01h disable video addressing
  2961. Return: AL = 12h if function supported
  2962. Desc:    specify whether the CPU should have access to video memory and the
  2963.       display adapters I/O registers
  2964. --------V-1012--BL33-------------------------
  2965. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  2966.     AH = 12h
  2967.     BL = 33h
  2968.     AL = new state
  2969.         00h enable gray scale summing
  2970.         01h disable gray scale summing
  2971. Return: AL = 12h if function supported
  2972. Desc:    specify whether or not colors should be converted to gray scale when
  2973.       palette or color registers are loaded
  2974. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  2975. --------V-1012--BL34-------------------------
  2976. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  2977.     AH = 12h
  2978.     BL = 34h
  2979.     AL = new state
  2980.         00h enable alphanumeric cursor emulation
  2981.         01h disable alphanumeric cursor emulation
  2982. Return: AL = 12h if function supported
  2983. Desc:    specify whether the BIOS should automatically remap cursor start/end
  2984.       according to the current character height in text modes
  2985. SeeAlso: AH=01h,AH=03h
  2986. --------V-1012--BL35-------------------------
  2987. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  2988.     AH = 12h
  2989.     BL = 35h
  2990.     AL = subfunction
  2991.         00h initial adapter video off
  2992.         01h initial planar video on
  2993.         02h switch active video off
  2994.         03h switch inactive video on
  2995.         80h *UNDOCUMENTED* set system board video active flag
  2996.     ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
  2997. Return: AL = 12h if function supported
  2998. Desc:    switch between two video adapters which may otherwise have address
  2999.       conflicts
  3000. SeeAlso: AX=BF00h,AX=BF01h,INT 6D"VGA"
  3001. --------V-1012--BL36-------------------------
  3002. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  3003.     AH = 12h
  3004.     BL = 36h
  3005.     AL = new state
  3006.         00h enable refresh
  3007.         01h disable refresh
  3008. Return: AL = 12h if function supported
  3009. Desc:    specify whether the contents of video memory should be displayed on
  3010.       the screen; disabling refresh effectively blanks the screen
  3011. Note:    when display refresh is disabled, the entire screen displays the color
  3012.       specified by the DAC color register 00h; thus to actually blank the
  3013.       screen, the application must first ensure that that register has been
  3014.       set to black
  3015. BUG:    GEM/VIEWMAX ET3000 and ET4000 drivers dated 6/23/88 do not correctly
  3016.       reenable refresh after the screen has been blanked due to inactivity,
  3017.       resulting in a total loss of video synchronization
  3018. SeeAlso: AX=BF05h
  3019. --------V-1012--BL37-------------------------
  3020. INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
  3021.     AH = 12h
  3022.     BL = 37h
  3023.     AL = text attribute type (00h normal VGA, 01h mainframe type)
  3024. Return: AL = 12h if supported
  3025. SeeAlso: #0025,AH=08h,#0040
  3026.  
  3027. Bitfields for XGA mainframe type character attributes:
  3028. Bit(s)    Description    (Table 0025)
  3029.  7    blink double rate (75% ON time) or use color 8 as background
  3030.     (see AX=1003h)
  3031.  6    reverse video
  3032.  5    underlined
  3033.  4    left-most and right-most dots of underline area inverted
  3034.  3    foreground intensity/character font select
  3035.  2-0    foreground color
  3036. SeeAlso: #0013,#0034
  3037. --------V-1012--BL38-------------------------
  3038. INT 10 - IBM SurePath BIOS - Officially "Private" Function
  3039.     AH = 12h
  3040.     BL = 38h
  3041. SeeAlso: AX=1118h,AH=12h/BL=39h
  3042. --------V-1012--BL39-------------------------
  3043. INT 10 - IBM SurePath BIOS - Officially "Private" Function
  3044.     AH = 12h
  3045.     BL = 39h
  3046. SeeAlso: AX=1118h,AH=12h/BL=38h,AH=12h/BL=3Ah
  3047. --------V-1012--BL3A-------------------------
  3048. INT 10 - IBM SurePath BIOS - Officially "Private" Function
  3049.     AH = 12h
  3050.     BL = 3Ah
  3051. SeeAlso: AX=1118h,AH=12h/BL=39h
  3052. --------V-1012--BL53-------------------------
  3053. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  3054.     AH = 12h
  3055.     BL = 53h
  3056. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  3057.       crash the system on this function
  3058. --------V-1012--BL57-------------------------
  3059. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  3060.     AH = 12h
  3061.     BL = 57h
  3062. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  3063.       crash the system on this function
  3064. --------V-1012--BH55-------------------------
  3065. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  3066.     AH = 12h
  3067.     BH = 55h
  3068.     BL = subfunction
  3069.         00h disable enhanced features
  3070.         01h enable enhanced features
  3071.         02h get status
  3072.         Return: AL = status flags (see #0026)
  3073.         03h disable register trapping (CGA emulation)
  3074.         04h enable register trapping
  3075.         05h program video mode
  3076.         ES:BP -> video mode table (see #0027)
  3077.         06h get mode table
  3078.         AL = video mode
  3079.         Return: ES:BP -> table suitable for mode AL
  3080.                   (and subfunc BL=05h) (see #0027)
  3081.             BP = FFFFh on error
  3082.             SI = 0000h (ATI Mach32)
  3083. Note:    the ATI Mouse driver (MOUSE.COM/MOUSE.SYS) uses subfunction 06h to get
  3084.       the mode table for mode 03h, and then looks for a signature string
  3085.       beginning within 32 bytes of the offset specified by the word at
  3086.       ES:000Ch
  3087. SeeAlso: AH=FFh"Oak"
  3088. Index:    installation check;ATI video adapters
  3089.  
  3090. Bitfields for status flags:
  3091. Bit(s)    Description    (Table 0026)
  3092.  3    set if enhanced features enabled
  3093.  7-5    monitor type
  3094.     000 PS/2 mono
  3095.     001 PS/2 color
  3096.     010 multi-sync
  3097.     011 Taxan 650 25kHz
  3098.     100 RGB
  3099.     101 mono
  3100.     110 EGA
  3101.     111 Compaq internal
  3102.  
  3103. Format of ATI VGA Wonder video mode table:
  3104. Offset    Size    Description    (Table 0027)
  3105.  00h    BYTE    number of columns
  3106.  01h    BYTE    maximum row (number of rows - 1)
  3107.  02h    BYTE    scan lines per row
  3108.  03h    WORD    video buffer size in bytes
  3109.  05h  4 BYTEs    values for Sequencer registers 1-4
  3110.  09h    BYTE    value for Miscellaneous Output register
  3111.  0Ah 25 BYTEs    values for CRTC registers 00h-18h
  3112.         00h horizontal total size (chars)
  3113.         01h horizontal displayed (chars)
  3114.         02h horizontal sync position (chars)
  3115.         03h horizontal sync width (chars)
  3116.         04h vertical total size (char rows)
  3117.         05h vertical total adjust (scan lines)
  3118.         06h vertical displayed (char rows)
  3119.         07h vertical sync position (char rows)
  3120.         08h interlace mode
  3121.         09h max scan line in row
  3122.         0Ah cursor start scan line
  3123.         0Bh cursor end scan line
  3124.         0Ch screen memory start (high)
  3125.         0Dh screen memory start (low)
  3126.         0Eh cursor address (high)
  3127.         0Fh cursor address (low)
  3128.         10h light pen (high)
  3129.         11h light pen (low)
  3130.  23h 20 BYTEs    default palette (values for Attribute Controller regs 00h-13h)
  3131.  37h  9 BYTEs    values for Graphics Controller registers 00h-08h
  3132. --------V-1012--BL74-------------------------
  3133. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3134.     AH = 12h
  3135.     BL = 74h
  3136. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3137.       crash the system on this function
  3138. --------V-1012--BL80-------------------------
  3139. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3140.     AH = 12h
  3141.     BL = 80h
  3142. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3143.       crash the system on this function
  3144. --------V-1012--BL80-------------------------
  3145. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  3146.     AH = 12h
  3147.     BL = 80h
  3148. Return: AX = controller type in bits 13-0 (see #0028)
  3149.         bit 14: ???
  3150.         bit 15: ???
  3151.     BL = silicon revision number (bit 7 set if not available)
  3152. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  3153.  
  3154. (Table 0028)
  3155. Values for Cirrus Logic video controller type:
  3156.  0000h    no extended alternate select support
  3157.  0002h    510/520
  3158.  0003h    610/620
  3159.  0004h    5320
  3160.  0005h    6410
  3161.  0006h    5410
  3162.  0007h    6420
  3163.  0008h    6412
  3164.  0010h    5401
  3165.  0011h    5402
  3166.  0012h    5420
  3167.  0013h    5422
  3168.  0014h    5424
  3169.  0015h    5426
  3170.  0016h    5420r1
  3171.  0017h    5402r1
  3172.  0018h    5428
  3173.  0020h    6205/15/25
  3174.  0030h    5432
  3175.  0031h    5434
  3176. SeeAlso: #0649,#0659
  3177. --------V-1012--BL81-------------------------
  3178. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  3179.     AH = 12h
  3180.     BL = 81h
  3181. Return: AH = BIOS major version
  3182.     AL = BIOS minor version
  3183. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  3184. --------V-1012--BL82-------------------------
  3185. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  3186.     AH = 12h
  3187.     BL = 82h
  3188. Return: AL = chip revision
  3189.     AH = ??? (AFh for v1.01)
  3190. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h,#0649 at INT 1A/AX=B102h
  3191. --------V-1012--BL84-------------------------
  3192. INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
  3193.     AH = 12h
  3194.     BL = 84h
  3195. Return: AX = user options word (see #0029)
  3196. SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  3197. SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
  3198.  
  3199. Bitfields for Cirrus Logic user options word:
  3200. Bit(s)    Description    (Table 0029)
  3201.  1,0    centering
  3202.     00 vertical centered, 01 from bottom, 10 from top, 11 reserved
  3203.  3,2    720-dot fix-up options
  3204.     00 OR every 8th and 9th pixel
  3205.     01 display MGA mode from left
  3206.     10 display MGA mode from right
  3207.     11 skip every 9th pixel
  3208.  4    ???
  3209.  7-5    video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
  3210.  8    external monitor enabled instead of LCD panel
  3211.  9    vertical expand mode enabled
  3212.  10    8-bit mode instead of 16-bit mode
  3213.  11    normal video rather than reverse video (for LCD)
  3214.  12    attribute automap rather than attribute emulation
  3215.  13    bold mode disabled (default)
  3216.  14    fast bandwidth
  3217.  15    ???
  3218. --------V-1012--BL85-------------------------
  3219. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  3220.     AH = 12h
  3221.     BL = 85h
  3222. Return: AL = number of 64K banks of video memory
  3223. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  3224. --------V-1012--BL89-------------------------
  3225. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
  3226.     AH = 12h
  3227.     BL = 89h
  3228.     AL = new state (00h enabled, 01h disabled)
  3229. Return: nothing
  3230. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
  3231. --------V-1012--BL8A-------------------------
  3232. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
  3233.     AH = 12h
  3234.     BL = 8Ah
  3235.     AL = new gray-scale color (00h = black to 0Fh = white)
  3236. Return: nothing
  3237. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
  3238. --------V-1012--BL8B-------------------------
  3239. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
  3240.     AH = 12h
  3241.     BL = 8Bh
  3242.     AL = new state (00h enabled, 01h disabled)
  3243. Return: nothing
  3244. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  3245. --------V-1012--BL8C-------------------------
  3246. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
  3247.     AH = 12h
  3248.     BL = 8Ch
  3249.     AL = new state
  3250.         00h enable automap
  3251.         01h disable automap and emulate attributes
  3252. Return: nothing
  3253. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
  3254. --------V-1012--BL8F-------------------------
  3255. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
  3256.     AH = 12h
  3257.     BL = 8Fh
  3258.     AL = new state (00h enabled, 01h disabled)
  3259. Return: nothing
  3260. Note:    when expand mode is enabled, the vertical dimension is enlarged to
  3261.       full screen
  3262. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
  3263. --------V-1012--BL90-------------------------
  3264. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
  3265.     AH = 12h
  3266.     BL = 90h
  3267.     AL = new position
  3268.         00h centered
  3269.         01h from top
  3270.         02h from bottom
  3271.         03h from top
  3272. Return: nothing
  3273. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
  3274. --------V-1012--BL91-------------------------
  3275. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
  3276.     AH = 12h
  3277.     BL = 91h
  3278.     AL = new mode
  3279.         00h display MGA mode from left of screen (default)
  3280.         01h display MGA from right
  3281.         02h skip every ninth pixel
  3282.         03h OR every 8th and 9th pixel
  3283. Return: nothing
  3284. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
  3285. --------V-1012--BL92-------------------------
  3286. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
  3287.     AH = 12h
  3288.     BL = 92h
  3289.     AL = new display (00h LCD, 01h external monitor)
  3290. Return: nothing
  3291. Note:    the deselected display is disabled
  3292. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
  3293. --------V-1012--BL93-------------------------
  3294. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  3295.     AH = 12h
  3296.     BL = 93h
  3297.     AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  3298. Return: nothing
  3299. SeeAlso: AH=12h/BL=9Ah
  3300. --------V-1012--BL94-------------------------
  3301. INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
  3302.     AH = 12h
  3303.     BL = 94h
  3304.     AL = new state (00h wake up monitor, 01h shut down display)
  3305. Return: nothing
  3306. Note:    AL=01h is reported not to work properly on the LCD panel
  3307. SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
  3308. --------V-1012--BL9A-------------------------
  3309. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  3310.     AH = 12h
  3311.     BL = 9Ah
  3312. Return: AX = options word 1 (see #0030)
  3313.     CX = options word 2 (see #0031)
  3314. SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
  3315. SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h,#0649 at INT 1A/AX=B102h
  3316.  
  3317. Bitfields for Cirrus Logic options word 1:
  3318. Bit(s)    Description    (Table 0030)
  3319.  0,1    reserved
  3320.  2-4    monitor type
  3321.  5-6    maximum vertical resolution
  3322.  7-9    reserved
  3323.  10    force 8-bit operation
  3324.  11-13    reserved
  3325.  14    vertical refresh frequency at 640x480
  3326.  15    reserved
  3327.  
  3328. Bitfields for Cirrus Logic options word 2:
  3329. Bit(s)    Description    (Table 0031)
  3330.  0-3    reserved
  3331.  4-5    vertical refresh frequency at 1280x1024
  3332.  6-10    reserved
  3333.  11-12    vertical refresh frequency at 800x600
  3334.  13-15    vertical refresh frequency at 1024x768
  3335. --------V-1012--BLA0-------------------------
  3336. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  3337.     AH = 12h
  3338.     BL = A0h
  3339.     AL = video mode number (00h-7Fh)
  3340. Return: AH bit 0: video mode supported
  3341.     BX = offset of BIOS subroutine to fixup standard video parameters
  3342.         (call subroutine with DS:SI and ES:DI as returned by this call)
  3343.     DS:SI -> standard video parameters or FFFFh:FFFFh
  3344.     ES:DI -> supplemental video parameters or FFFFh:FFFFh
  3345. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  3346. --------V-1012--BLA1-------------------------
  3347. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  3348.     AH = 12h
  3349.     BL = A1h
  3350. Return: BH = monitor ID (see #0032)
  3351.     BL = monitor type (00h color, 01h grayscale, 02h no display)
  3352. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  3353.  
  3354. (Table 0032)
  3355. Values for Cirrus Logic monitor ID:
  3356.  00h-08h reserved
  3357.  09h    IBM 8604/8507 or equivalent
  3358.  0Ah    IBM 8514 or equivalent
  3359.  0Bh    IBM 8515 or equivalent
  3360.  0Dh    IBM 8503 or equivalent
  3361.  0Eh    IBM 8512/8513 or equivalent
  3362.  0Fh    no monitor
  3363. --------V-1012--BLA2-------------------------
  3364. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  3365.     AH = 12h
  3366.     BL = A2h
  3367.     AL = retrace rate
  3368.         00h standard VGA (31.5 kHz)
  3369.         01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  3370.         02h SuperVGA (31.5-35.1 kHz)
  3371.         03h extended SuperVGA (31.5-35.5 kHz)
  3372.         04h multi-frequency (31.5-37.8 kHz)
  3373.         05h extended multi-frequency (31.5-48.0 kHz)
  3374.         06h super multi-frequency (31.5-56.0 kHz)
  3375.         07h extended super multi-frequency (31.5-64.0 kHz)
  3376. Return: nothing
  3377. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  3378. --------V-1012--BLA3-------------------------
  3379. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  3380.     AH = 12h
  3381.     BL = A3h
  3382.     AL = refresh rate for 640x480 (00h normal, 01h high)
  3383. Return: nothing
  3384. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  3385. --------V-1012--BLA4-------------------------
  3386. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  3387.     AH = 12h
  3388.     BL = A4h
  3389.     AL bits 3-0 = maximum vertical resolution
  3390.         (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  3391.     AL bits 7-4 = vertical refresh at 640x480
  3392.         (0 = 60Hz, 1 = 72Hz, other reserved)
  3393.     BH bits 3-0 = vertical refresh at 800x600
  3394.         (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  3395.     BH bits 7-4 = vertical refresh at 1024x768
  3396.         (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  3397.     CH bits 4-7 = vertical refresh at 1280x1024
  3398.         (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  3399. Return: nothing
  3400. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  3401. --------V-1012--BLBE-------------------------
  3402. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3403.     AH = 12h
  3404.     BL = BEh
  3405. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3406.       crash the system on this function
  3407. --------V-1012--BLC6-------------------------
  3408. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3409.     AH = 12h
  3410.     BL = C6h
  3411. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3412.       crash the system on this function
  3413. --------V-1012--BLF0-------------------------
  3414. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3415.     AH = 12h
  3416.     BL = F0h
  3417. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3418.       crash the system on this function
  3419. --------V-1012--BLF1--------------------------
  3420. INT 10 - Tseng ET-4000 BIOS - GET/SET SCREEN REFRESH RATE
  3421.     AH = 12h
  3422.     BL = F1h
  3423.     AL = subfunction
  3424.         00h set refresh rate
  3425.         01h get refresh rate
  3426.     BH = video mode
  3427.         00h     640x480
  3428.         01h     800x600
  3429.         02h     1024x768
  3430.         03h     1280x1024
  3431.     CX = new refresh rate (see #0033) if AL = 00h
  3432. Return: AL = 12h if supported
  3433.         CX = current rate (for AL=00h, a changed CX indicates failure)
  3434.  
  3435. (Table 0033)
  3436. Values for Tseng ET4000 refresh rate:
  3437.  CX    640x480    800x600      1024x768/1280x1024
  3438.  00h    60 Hz     56 Hz       interlaced
  3439.  01h    72 Hz     60 Hz       60 Hz
  3440.  02h    75 Hz     72 Hz       70 Hz
  3441.  03h    90 Hz     75 Hz       75 Hz    
  3442.  04h    --     90 Hz       --
  3443. --------V-1013-------------------------------
  3444. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  3445.     AH = 13h
  3446.     AL = write mode
  3447.        bit 0: update cursor after writing
  3448.        bit 1: string contains alternating characters and attributes
  3449.        bits 2-7: reserved (0)
  3450.     BH = page number
  3451.     BL = attribute if string contains only characters
  3452.     CX = number of characters in string
  3453.     DH,DL = row,column at which to start writing
  3454.     ES:BP -> string to write
  3455. Return: nothing
  3456. Notes:    recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling,
  3457.       backspace, and CR only take place in the active page
  3458.     also available PC or XT with EGA or higher
  3459.     HP 95LX only supports write mode 00h
  3460.     IBM documents AL=10h,11h,20h,21h as "private" rather than "reserved"
  3461. BUG:    on the IBM VGA Adapter, any scrolling which may occur is performed on
  3462.       the active page rather than the requested page
  3463. SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"
  3464. --------J-1013-------------------------------
  3465. INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
  3466.     AH = 13h
  3467.     AL = function
  3468.         10h read characters and standard attributes
  3469.         11h read characters and extended attributes
  3470.         12h write characters and standard attributes
  3471.         13h write characters and extended attributes
  3472.     BH = 00h
  3473.     CX = number of characters to transfer
  3474.     DH,DL = row,column at which to start transfer
  3475.     ES:BP -> buffer for/containing characters and attributes (see #0034)
  3476. Return: ES:BP buffer filled if reading
  3477. Program: DOS/V is a Japanese-language version of MS-DOS which can run on
  3478.       standard (non-Japanese) ATs and compatible equipped with a VGA or
  3479.       newer video adapter
  3480. Notes:    subfunctions 11h and 13h are only valid when DOS/V is using video
  3481.       mode 73h
  3482.     the cursor position is not changed by these functions
  3483.     extended attributes consist of three bytes; the first is the standard
  3484.       character attribute byte, the second is as described below, and the
  3485.       third is always zero in current versions
  3486. SeeAlso: AH=00h,AH=13h"VIDEO"
  3487.  
  3488. Bitfields for DOS/V second extended attribute byte:
  3489. Bit(s)    Description    (Table 0034)
  3490.  7    underline using foreground color
  3491.  6    reverse foreground/background specified in standard attribute byte
  3492.  5-4    unused
  3493.  3    vertical white grid line in cell
  3494.  2    horizontal white grid line in cell
  3495.  1-0    unused
  3496. SeeAlso: #0013,#0025
  3497. --------V-101400-----------------------------
  3498. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  3499.     AX = 1400h
  3500.     ES:DI -> character font
  3501.     BH = number of bytes per character
  3502.         08h or 10h (Compaq)
  3503.     BL = 00h load main font (block 0)
  3504.          01h load alternate font (block 1)
  3505.     CX = number of characters to store
  3506.     DX = character offset into RAM font area
  3507. Return: nothing
  3508. SeeAlso: AX=1100h,AX=1110h,AX=1401h
  3509. --------V-101401-----------------------------
  3510. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  3511.     AX = 1401h
  3512.     BL = font to load
  3513.         00h main font (block 0)
  3514.         01h alternate font (block 1)
  3515. Return: nothing
  3516. SeeAlso: AX=1100h,AX=1102h,AX=1400h
  3517. --------V-101402-----------------------------
  3518. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  3519.     AX = 1402h
  3520.     BL = subfunction
  3521.         00h ignore high intensity attribute
  3522.         01h map high intensity to reverse video
  3523.         02h map high intensity to underscore
  3524.         03h map high intensity to selected alternate font
  3525.         B0h half intensity (Compaq)
  3526.         B1h toggle active intensity bit interpretation (CP386)
  3527. Return: nothing
  3528. --------V-1015-------------------------------
  3529. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  3530.     AH = 15h
  3531. Return: AX = alternate display adapter type (see #0035)
  3532.     ES:DI -> parameter table (see #0036)
  3533. SeeAlso: AH=1Bh
  3534.  
  3535. (Table 0035)
  3536. Values for PC Convertible alternate display adapter type:
  3537.  0000h    none
  3538.  5140h    LCD
  3539.  5153h    CGA
  3540.  5151h    mono
  3541.  
  3542. Format of PC Convertible display parameter table:
  3543. Offset    Size    Description    (Table 0036)
  3544.  00h    WORD    monitor model number
  3545.  02h    WORD    vertical pixels per meter
  3546.  04h    WORD    horizontal pixels per meter
  3547.  06h    WORD    total vertical pixels
  3548.  08h    WORD    total horizontal pixels
  3549.  0Ah    WORD    horizontal pixel separation in micrometers
  3550.         (width, center-to-center)
  3551.  0Ch    WORD    vertical pixel separation in micrometers
  3552.         (height, center-to-center)
  3553. --------V-1015-------------------------------
  3554. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  3555.     AH = 15h
  3556.     AL = superimpose mode
  3557.         00h show graphics screen
  3558.         01h show text screen
  3559.         02h show text screen superimposed on graphics screen
  3560. Return: nothing
  3561. --------J-1018-------------------------------
  3562. INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
  3563.     AH = 18h
  3564.     AL = subfunction
  3565.         00h get font pattern
  3566.         01h set font pattern
  3567.     BX = 0000h
  3568.     CL = character size in bytes (01h,02h)
  3569.     CH = 00h
  3570.     DH = character width in pixels
  3571.     DL = character height in pixels
  3572.     ES:DI -> buffer for/containing font image
  3573. Return: AL = status (00h successful, else error)
  3574.     ES:DI buffer filled for function 00h if successful
  3575. Note:    the supported font sizes are 8x16 single-byte, 8x19 single-byte,
  3576.       16x16 double-byte, and 24x24 double-byte
  3577. SeeAlso: AH=19h,INT 16/AH=14h
  3578. --------V-1019-------------------------------
  3579. INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
  3580.     AH = 19h
  3581.     ???
  3582. Return: ???
  3583. SeeAlso: AH=18h,INT 16/AH=14h
  3584. --------V-101A00-----------------------------
  3585. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3586.     AX = 1A00h
  3587. Return: AL = 1Ah if function was supported
  3588.         BL = active display code (see #0037)
  3589.         BH = alternate display code (see #0037)
  3590. Notes:    this function is commonly used to check for the presence of a VGA
  3591.     this function is supported on the ATI EGA Wonder with certain
  3592.       undocumented configuration switch settings, even though the EGA
  3593.       Wonder does not support VGA graphics; to distinguish this case,
  3594.       call AX=1C00h with CX nonzero, which the EGA Wonder does not support
  3595. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh,AH=1Ch
  3596. Index:    installation check;VGA
  3597.  
  3598. (Table 0037)
  3599. Values for display combination code:
  3600.  00h    no display
  3601.  01h    monochrome adapter w/ monochrome display
  3602.  02h    CGA w/ color display
  3603.  03h    reserved
  3604.  04h    EGA w/ color display
  3605.  05h    EGA w/ monochrome display
  3606.  06h    PGA w/ color display
  3607.  07h    VGA w/ monochrome analog display
  3608.  08h    VGA w/ color analog display
  3609.  09h    reserved
  3610.  0Ah    MCGA w/ digital color display
  3611.  0Bh    MCGA w/ monochrome analog display
  3612.  0Ch    MCGA w/ color analog display
  3613.  FFh    unknown display type
  3614. --------V-101A01-----------------------------
  3615. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3616.     AX = 1A01h
  3617.     BL = active display code (see #0037)
  3618.     BH = alternate display code
  3619. Return: AL = 1Ah if function was supported
  3620. SeeAlso: AH=12h/BL=35h,AX=1A00h
  3621. --------V-101B-------------------------------
  3622. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  3623.     AH = 1Bh
  3624.     BX = implementation type
  3625.         0000h return funtionality/state information
  3626.     ES:DI -> 64-byte buffer for state information (see #0038)
  3627. Return: AL = 1Bh if function supported
  3628.         ES:DI buffer filled with state information
  3629. BUG:    Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  3630.       do not correctly set the fields at offsets 27h and 29h of the
  3631.       state information
  3632. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  3633.  
  3634. Format of MCGA+ state information:
  3635. Offset    Size    Description    (Table 0038)
  3636.  00h    DWORD    address of static funtionality table (see #0043)
  3637.  04h    BYTE    video mode in effect
  3638.  05h    WORD    number of columns
  3639.  07h    WORD    length of regen buffer in bytes
  3640.  09h    WORD    starting address of regen buffer
  3641.  0Bh    WORD    cursor position for page 0
  3642.  0Dh    WORD    cursor position for page 1
  3643.  0Fh    WORD    cursor position for page 2
  3644.  11h    WORD    cursor position for page 3
  3645.  13h    WORD    cursor position for page 4
  3646.  15h    WORD    cursor position for page 5
  3647.  17h    WORD    cursor position for page 6
  3648.  19h    WORD    cursor position for page 7
  3649.  1Bh    WORD    cursor "type" (start/stop scan lines)
  3650.  1Dh    BYTE    active display page
  3651.  1Eh    WORD    CRTC port address
  3652.  20h    BYTE    current setting of PORT 03x8h
  3653.  21h    BYTE    current setting of PORT 03x9h
  3654.  22h    BYTE    number of rows - 1
  3655.  23h    WORD    bytes/character
  3656.  25h    BYTE    display combination code of active display
  3657.  26h    BYTE    DCC of alternate display
  3658.  27h    WORD    number of colors supported in current mode (0000h = mono)
  3659.  29h    BYTE    number of pages supported in current mode
  3660.  2Ah    BYTE    number of scan lines active
  3661.         (0,1,2,3) = (200,350,400,480)
  3662.         Tseng ET3000: (4,5,6 = 512,600,768)
  3663.  2Bh    BYTE    primary character block
  3664.  2Ch    BYTE    secondary character block
  3665.  2Dh    BYTE    miscellaneous flags (see #0039)
  3666.  2Eh    BYTE    non-VGA mode support (see #0040)
  3667.  2Fh  2 BYTEs    reserved (00h)
  3668.  31h    BYTE    video memory available
  3669.         00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  3670.  32h    BYTE    save pointer state flags (see #0041)
  3671.  33h    BYTE    display information and status (see #0042)
  3672.  34h 12 BYTEs    reserved (00h)
  3673.  
  3674. Bitfields for miscellaneous flags:
  3675. Bit(s)    Description    (Table 0039)
  3676.  0    all modes on all displays on
  3677.  1    gray summing on
  3678.  2    monochrome display attached
  3679.  3    default palette loading disabled
  3680.  4    cursor emulation enabled
  3681.  5    0 = intensity; 1 = blinking
  3682.  6    flat-panel display is active
  3683.  7    unused (0)
  3684. SeeAlso: #0038
  3685.  
  3686. Bitfields for non-VGA mode support:
  3687. Bit(s)    Description    (Table 0040)
  3688.  7-5    reserved
  3689.  4    132-column mode supported
  3690.  3    =1 MFI attributes enabled (see AH=12h/BL=37h)
  3691.     =0 VGA attributes
  3692.  2    16-bit VGA graphics present
  3693.  1    adapter interface driver required
  3694.  0    BIOS supports information return for adapter interface
  3695. SeeAlso: #0038
  3696.  
  3697. Bitfields for save pointer state flags:
  3698. Bit(s)    Description    (Table 0041)
  3699.  0    512 character set active
  3700.  1    dynamic save area present
  3701.  2    alpha font override active
  3702.  3    graphics font override active
  3703.  4    palette override active
  3704.  5    DCC override active
  3705.  6-7    unused (0)
  3706. SeeAlso: #0038
  3707.  
  3708. Bitfields for display information and status:
  3709. Bit(s)    Description    (Table 0042)
  3710.  7    640x480 flat-panel can be used simultaneously with CRT controller
  3711.  6-3    reserved
  3712.  2    color display
  3713.  1    flat-panel display active
  3714.  0    flat-panel display attached
  3715. SeeAlso: #0038
  3716.  
  3717. Format of Static Functionality Table:
  3718. Offset    Size    Description    (Table 0043)
  3719.  00h    BYTE    modes supported 1
  3720.         bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6,7 supported
  3721.  01h    BYTE    modes supported 2
  3722.         bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  3723.  02h    BYTE    modes supported 3
  3724.         bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  3725.         bit 4 to bit 7 unused (0)
  3726.  03h    BYTE    (IBM) reserved
  3727.         (Tseng ET3000/4000) modes supported 4
  3728.                 bit 0 to bit 7 = modes 18h-1Fh supported
  3729.  04h    BYTE    (IBM) reserved
  3730.         (Tseng ET3000/4000) modes supported 5
  3731.                 bit 0 to bit 7 = modes 20h-27h supported
  3732.  05h    BYTE    (IBM) reserved
  3733.         (Tseng ET3000/4000) modes supported 6
  3734.                 bit 0 to bit 7 = modes 28h-2Fh supported
  3735.  06h    BYTE    (IBM) reserved
  3736.         (Tseng ET3000/4000) modes supported 7
  3737.                 bit 0 to bit 7 = modes 30h-37h supported
  3738.  07h    BYTE    scan lines supported
  3739.         bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  3740.         bits 3-7 = unused (0)
  3741.  08h    BYTE    total number of character blocks available in text modes
  3742.  09h    BYTE    maximum number of active character blocks in text modes
  3743.  0Ah    WORD    miscellaneous function support flags (see #0044)
  3744.  0Ch    WORD    reserved
  3745.  0Eh    BYTE    save pointer function flags (see #0045)
  3746.  0Fh    BYTE    reserved
  3747. SeeAlso: #0038
  3748.  
  3749. Bitfields for miscellaneous function support flags:
  3750. Bit(s)    Description    (Table 0044)
  3751.  0    all modes on all displays function supported
  3752.  1    gray summing function supported
  3753.  2    character font loading function supported
  3754.  3    default palette loading enable/disable supported
  3755.  4    cursor emulation function supported
  3756.  5    EGA palette present
  3757.  6    color palette present
  3758.  7    color-register paging function supported
  3759.  8    light pen supported (see AH=04h)
  3760.  9    save/restore state function 1Ch supported
  3761.  10    intensity/blinking function supported (see AX=1003h)
  3762.  11    Display Combination Code supported (see #0037)
  3763.  12-15    unused (0)
  3764. SeeAlso: #0038
  3765.  
  3766. Bitfields for save pointer function flags:
  3767. Bit(s)    Description    (Table 0045)
  3768.  0    512 character set supported
  3769.  1    dynamic save area supported
  3770.  2    alpha font override supported
  3771.  3    graphics font override supported
  3772.  4    palette override supported
  3773.  5    DCC extension supported
  3774.  6-7    unused (0)
  3775. SeeAlso: #0038
  3776. --------V-101C-------------------------------
  3777. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  3778.     AH = 1Ch
  3779.     AL = function
  3780.         00h return state buffer size
  3781.         Return: BX = number of 64-byte blocks needed
  3782.         01h save video state
  3783.         ES:BX -> buffer
  3784.         02h restore video state
  3785.         ES:BX -> buffer containing previously saved state
  3786.     CX = requested states (see #0046)
  3787. Return: AL = 1Ch if function supported
  3788. Notes:    many BIOSes corrupt the video registers when saving the state, so a
  3789.       program should restore the state immediately after saving it (the
  3790.       saved data is uncorrupted)
  3791.     the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  3792.     this function is not supported when DOS/V is running
  3793.     this function may be a better VGA installation check than the usual
  3794.       INT 10/AX=1A00h, since some late-model EGA cards (such as the ATI
  3795.       EGA Wonder) supported that call
  3796. SeeAlso: AX=1A00h
  3797.  
  3798. Bitfields for requested states:
  3799. Bit(s)    Description    (Table 0046)
  3800.  0    video hardware (see #0047)
  3801.  1    BIOS data areas
  3802.  2    color registers and DAC state (see #0048)
  3803.  3-15    unused (0)
  3804.  
  3805. Format of VGA video hardware state:
  3806. Offset    Size    Description    (Table 0047)
  3807.  00h    BYTE    sequencer index register
  3808.  01h    BYTE    CRTC index register
  3809.  02h    BYTE    graphics controller index register
  3810.  03h    BYTE    attribute controller index register
  3811.  04h    BYTE    feature controller register
  3812.  05h  4 BYTEs    sequencer registers
  3813.  09h    BYTE    sequencer register 0
  3814.  0Ah 25 BYTEs    CRTC registers 0-8
  3815.  23h 16 BYTEs    palette registers 00h-0Fh
  3816.  33h  4 BYTEs    attribute registers 10h-13h
  3817.  37h  9 BYTEs    graphics controller registers 0-8
  3818.  40h    BYTE    CRTC base address (low)
  3819.  41h    BYTE    CRTC base address (high)
  3820.  42h    BYTE    plane 0 latch
  3821.  43h    BYTE    plane 1 latch
  3822.  44h    BYTE    plane 2 latch
  3823.  45h    BYTE    plane 3 latch
  3824.  
  3825. Format of VGA DAC state:
  3826. Offset    Size    Description    (Table 0048)
  3827.  00h    BYTE    read/write mode DAC
  3828.  01h    BYTE    pixel address
  3829.  02h    BYTE    pixel mask
  3830.  03h 768 BYTEs    color data (256 triples)
  3831. 303h    BYTE    color select register
  3832. --------J-101D-------------------------------
  3833. INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
  3834.     AH = 1Dh
  3835.     AL = function
  3836.         00h enable shift status line(s)
  3837.         BX = number of lines to reserve at bottom of screen (usu. 1)
  3838.         01h disable shift status line
  3839.         BX = number of lines reserved at bottom of screen (usually 1)
  3840.         02h get number of status lines
  3841.         Return: BX = number of lines reserved for shift status
  3842. SeeAlso: AH=19h
  3843. --------V-101D-------------------------------
  3844. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  3845.     AH = 1Dh
  3846.     AL = video mode
  3847.     ES = caller's segment
  3848. Return: nothing
  3849. Note:    the caller's segment contains at offset 5Ch (FCB field in PSP)
  3850.       or 100h a table with sync parameters (see #0049) (BIOS looks at both
  3851.       offsets)
  3852.  
  3853. Format of SpeedSTAR Plus sync table:
  3854. Offset    Size    Description    (Table 0049)
  3855.  00h  9 BYTEs    ID contains string 'ey5CENTER'
  3856.  09h  5 BYTEs    sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  3857.  0Bh  5 BYTEs    sync parameters for 800x600 modes 29h,30h,2Ah
  3858.  13h  5 BYTEs    sync parameters for 1024x768 modes 37h,38h
  3859. --------V-101D-------------------------------
  3860. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3861.     AH = 1Dh
  3862. Note:    these versions of the BIOS jump to a random location on this function
  3863.       due to a fencepost error
  3864. --------V-101DAABXFDEC-----------------------
  3865. INT 10 U - Diamond Stealth64 Video - INSTALLATION CHECK
  3866.     AX = 1DAAh
  3867.     BX = FDECh
  3868. Return: BX = CDEFh if Diamond Stealth64 Video 2001-series video card installed
  3869.         AL = number of megabytes of video memory
  3870.         AH = ??? (4Bh/5Bh)
  3871.         CX = ??? (0000h)
  3872.         SI:DI -> signature/copyright string
  3873. --------V-101E00-----------------------------
  3874. INT 10 - VIDEO - FLAT-PANEL - READ INFORMATION
  3875.     AX = 1E00h
  3876. Return: AL = 1Eh if function supported
  3877.         BL = flat-panel status (see #0050)
  3878.         ES:DI -> information table (see #0051)
  3879. Note:    IBM classifies this function as optional
  3880. SeeAlso: AX=1E01h,AX=1E02h,AX=1E03h,AX=1E04h,AX=1E05h,AX=1EFEh
  3881.  
  3882. Bitfields for flat-panel status:
  3883. Bit(s)    Description    (Table 0050)
  3884.  7-3    reserved
  3885.  2    color display
  3886.  1    flat panel is active
  3887.  0    flat panel is attached
  3888. SeeAlso: #0051
  3889.  
  3890. Format of flat-panel information table:
  3891. Offset    Size    Description    (Table 0051)
  3892.  00h    BYTE    number of WORDs in the remainder of the table
  3893.  01h    WORD    number of vertical pixels per meter
  3894.  03h    WORD    number of horizontal pixels per meter
  3895.  05h    WORD    total number of vertical pixels
  3896.  07h    WORD    total number of horizontal pixels
  3897.  09h    WORD    vertical pixel separation in micrometers (center-to-center)
  3898.  0Bh    WORD    horizontal pixel separation in micrometers
  3899.  0Dh    WORD    range of gray levels available, less 1
  3900.  0Fh    WORD    number of red levels available, less 1 (0000h if nonochrome)
  3901.  11h    WORD    number of green levels available, less 1 (0000h if nonochrome)
  3902.  13h    WORD    number of blue levels available, less 1 (0000h if nonochrome)
  3903. SeeAlso: #0050
  3904. --------V-101E01-----------------------------
  3905. INT 10 - VIDEO - FLAT-PANEL - LCD/CRT DISPLAY CONTROL
  3906.     AX = 1E01h
  3907.     BH = function
  3908.         bit 7: =1 set display control, =0 query control
  3909.         bits 6-0: reserved (0)
  3910.     ---if BH bit 7 set---
  3911.     BL = new display combination (see #0052)
  3912. Return: AL = 1Eh if function supported
  3913.         BH = results
  3914.         bit 7: query/set (copied from input)
  3915.         bits 6-3: reserved (0)
  3916.         bit 2: simultaneous display is supported by hardware
  3917.         bit 1: LCD/CRT display control supported by hardware
  3918.         bit 0: set operation was successful (always clear on get)
  3919.         BL = active display combination (see #0052)
  3920. SeeAlso: AX=1E00h,AX=1E02h
  3921.  
  3922. Bitfields for Flat-Panel display combination:
  3923. Bit(s)    Description    (Table 0052)
  3924.  7-2    reserved (0)
  3925.  1-0    combination
  3926.     00 reserved
  3927.     01 LCD active
  3928.     10 CRT active
  3929.     11 both LCD and CRT active (simultaneous display)
  3930. SeeAlso: #0053
  3931. --------V-101E02-----------------------------
  3932. INT 10 - VIDEO - FLAT-PANEL - DISPLAY POSITION
  3933.     AX = 1E02h
  3934.     BH = function
  3935.         bit 7: =1 set display position, =0 query position
  3936.         bits 6-0: reserved (0)
  3937.     ---if BH bit 7 set---
  3938.     BL = new position setting (see #0053)
  3939. Return: AL = 1Eh if function supported
  3940.         BH = results
  3941.         bit 7: query/set (copied from input)
  3942.         bits 6-4: reserved (0)
  3943.         bit 3: positioning to top is supported by hardware
  3944.         bit 2: positioning to center is supported by hardware
  3945.         bit 1: positioning to bottom is supported by hardware
  3946.         bit 0: set operation was successful (always clear on get)
  3947.         BL = active position setting (see #0053)
  3948. SeeAlso: AX=1E00h,AX=1E01h
  3949.  
  3950. Bitfields for Flat-Panel position setting:
  3951. Bit(s)    Description    (Table 0053)
  3952.  7-2    reserved (0)
  3953.  1-0    position
  3954.     00 center
  3955.     01 top
  3956.     10 bottom
  3957.     11 reserved
  3958. SeeAlso: #0052,#0054
  3959. --------V-101E03-----------------------------
  3960. INT 10 - VIDEO - FLAT-PANEL - VERTICAL EXPANSION FOR TEXT/GRAPHICS MODES
  3961.     AX = 1E03h
  3962.     BH = function
  3963.         bit 7: =1 set vertical expansion, =0 query expansion
  3964.         bits 6-0: reserved (0)
  3965.     ---if BH bit 7 set---
  3966.     BL = new vertical expansion setting (see #0054)
  3967. Return: AL = 1Eh if function supported
  3968.         BH = results
  3969.         bit 7: query/set (copied from input)
  3970.         bits 6-4: reserved (0)
  3971.         bit 3: vertical expansion of text is supported by hardware
  3972.         bit 2: vertical expansion of graphics is supported by hardware
  3973.         bit 1: hardware supports independent control of expansion in
  3974.             text and graphics modes
  3975.         bit 0: set operation was successful (always clear on get)
  3976.         BL = active vertical expansion setting (see #0054)
  3977. SeeAlso: AX=1E00h,AX=1E02h.AX=1E04h
  3978.  
  3979. Bitfields for Flat-Panel vertical expansion setting:
  3980. Bit(s)    Description    (Table 0054)
  3981.  7-2    reserved (0)
  3982.  1    vertical expansion turned on for text modes
  3983.  0    vertical expansion turned on for graphics modes
  3984. SeeAlso: #0052,#0053,#0055
  3985. --------V-101E04-----------------------------
  3986. INT 10 - VIDEO - FLAT-PANEL - NORMAL/REVERSE VIDEO FOR TEXT/GRAPHICS MODES
  3987.     AX = 1E04h
  3988.     BH = function
  3989.         bit 7: =1 set normal/reverse video, =0 query normal/reverse
  3990.         bits 6-0: reserved (0)
  3991.     ---if BH bit 7 set---
  3992.     BL = new normal/reverse video setting (see #0055)
  3993. Return: AL = 1Eh if function supported
  3994.         BH = results
  3995.         bit 7: query/set (copied from input)
  3996.         bits 6-4: reserved (0)
  3997.         bit 3: hardware supports reverse video for text modes
  3998.         bit 2: hardware supports reverse video for graphics modes
  3999.         bit 1: hardware supports independent control of reverse video
  4000.               in text and graphics modes
  4001.         bit 0: set operation was successful (always clear on get)
  4002.         BL = active normal/reverse video setting (see #0055)
  4003. SeeAlso: AX=1E00h,AX=1E03h,AX=1E05h
  4004.  
  4005. Bitfields for Flat-Panel normal/reverse video setting:
  4006. Bit(s)    Description    (Table 0055)
  4007.  7-2    reserved (0)
  4008.  1    reverse video for text
  4009.  0    reverse video for graphics
  4010. SeeAlso: #0052,#0054,#0056,#0057
  4011. --------V-101E05-----------------------------
  4012. INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS CONTROL
  4013.     AX = 1E05h
  4014.     BH = function
  4015.         bit 7: =1 set brightness, =0 query brightness
  4016.         bits 6-0: reserved (0)
  4017.     ---if BH bit 7 set---
  4018.     BL = new brightness setting (see #0056)
  4019. Return: AL = 1Eh if function supported
  4020.         BH = results
  4021.         bit 7: query/set (copied from input)
  4022.         bits 6-2: reserved (0)
  4023.         bit 1: software brightness control is supported
  4024.         bit 0: set operation was successful (always clear on get)
  4025.         BL = active brightness setting (see #0056)
  4026. Note:    this function operates independently of AX=1E07h
  4027. SeeAlso: AX=1E00h,AX=1E04h,AX=1E06h,AX=1E07h
  4028.  
  4029. Bitfields for Flat-Panel brightness control:
  4030. Bit(s)    Description    (Table 0056)
  4031.  7-1    reserved (0)
  4032.  0    high brightness
  4033. SeeAlso: #0055,#0057
  4034. --------V-101E06-----------------------------
  4035. INT 10 - VIDEO - FLAT-PANEL - CONTRAST CONTROL FOR TEXT/GRAPHICS
  4036.     AX = 1E06h
  4037.     BH = function
  4038.         bit 7: =1 set contrast control, =0 query contrast
  4039.         bits 6-0: reserved (0)
  4040.     ---if BH bit 7 set---
  4041.     BL = new normal/reverse video setting (see #0057)
  4042. Return: AL = 1Eh if function supported
  4043.         BH = results
  4044.         bit 7: query/set (copied from input)
  4045.         bits 6-4: reserved (0)
  4046.         bit 3: software contrast control supported for text
  4047.         bit 2: software contrast control supported for graphics
  4048.         bit 1: hardware supports independent control of contrast
  4049.               in text and graphics modes
  4050.         bit 0: set operation was successful (always clear on get)
  4051.         BL = active contrast setting (see #0057)
  4052. Note:    this function operates independently of AX=1E08h
  4053. SeeAlso: AX=1E00h,AX=1E04h,AX=1E05h,AX=1E07h,AX=1E08h
  4054.  
  4055. Bitfields for Flat-Panel contrast control:
  4056. Bit(s)    Description    (Table 0057)
  4057.  7-2    reserved (0)
  4058.  1    high contrast for text
  4059.  0    high contrast for graphics
  4060. SeeAlso: #0055,#0056
  4061. --------V-101E07-----------------------------
  4062. INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS SETTING
  4063.     AX = 1E07h
  4064.     BH = function
  4065.         bit 7: =1 set brightness control, =0 query brightness
  4066.         bit 6: use standard brightness
  4067.         bits 5-0: reserved (0)
  4068.     ---if BH bits 7,6=10---
  4069.     BL = brightness (00h = minimum, FFh = maximum)
  4070. Return: AL = 1Eh if function supported
  4071.         BH = results
  4072.         bit 7: query/set (copied from input)
  4073.         bit 6: standard/custom (copied from input)
  4074.         bits 5-2: reserved (0)
  4075.         bit 1: software brightness control is supported
  4076.         bit 0: set operation was succesful (always clear on get)
  4077.         BL = brightness (00h = minimum, FFh = maximum)
  4078. Note:    this function operates independently of AX=1E05h
  4079. SeeAlso: AX=1E00h,AX=1E05h,AX=1E08h
  4080. --------V-101E08-----------------------------
  4081. INT 10 - VIDEO - FLAT-PANEL - CONTRAST SETTING
  4082.     AX = 1E08h
  4083.     BH = function
  4084.         bit 7: =1 set contrast control, =0 query contrast
  4085.         bit 6: use standard contrast
  4086.         bits 5-0: reserved (0)
  4087.     ---if BH bits 7,6=10---
  4088.     BL = contrast (00h = minimum, FFh = maximum)
  4089. Return: AL = 1Eh if function supported
  4090.         BH = results
  4091.         bit 7: query/set (copied from input)
  4092.         bit 6: standard/custom (copied from input)
  4093.         bits 5-2: reserved (0)
  4094.         bit 1: software contrast control is supported
  4095.         bit 0: set operation was succesful (always clear on get)
  4096.         BL = contrast (00h = minimum, FFh = maximum)
  4097. Note:    this function operates independently of AX=1E06h
  4098. SeeAlso: AX=1E00h,AX=1E06h,AX=1E07h
  4099. --------V-101EFE-----------------------------
  4100. INT 10 - VIDEO - FLAT-PANEL - FUNCTION SUPPORT FLAG
  4101.     AX = 1EFEh
  4102.     ES:DI -> DWORD buffer for bitmap of supported functions
  4103.         (set to all zeros before calling)
  4104. Return: ES:DI buffer updated with mask of supported functions
  4105. Index:    installation check;flat-panel display support
  4106. SeeAlso: AX=1E00h,AX=1E06h
  4107. --------V-101F00-----------------------------
  4108. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  4109.     AX = 1F00h
  4110. Return: AL = 1Fh if supported
  4111.         BX = number of bytes of DMQS data
  4112. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  4113.       and later models.
  4114. SeeAlso: AX=1F01h
  4115. --------V-101F01-----------------------------
  4116. INT 10 - VIDEO - XGA - READ DMQS DATA
  4117.     AX = 1F01h
  4118.     ES:DI -> user buffer for return data (call AX=1F00h for size)
  4119. Return: AL = 1Fh if function supported
  4120.     user buffer filled with DMQS data (see #0058)
  4121. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  4122.       and later models.
  4123. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  4124.  
  4125. Format of XGA DMQS buffer:
  4126. Offset    Size    Description    (Table 0058)
  4127.  00h    WORD    offset (in bytes) to DMQS data for next XGA instance
  4128.  02h    BYTE    slot number
  4129.  03h    BYTE    XGA implementation function level identifier
  4130.  04h    BYTE    XGA implementation resolution level identifier
  4131.  05h    WORD    vendor identifier - identifies card vendor
  4132.  07h    WORD    vendor defined field
  4133.  09h    WORD    XGA adapter I/O register base address
  4134.  0Bh    WORD    XGA coprocessor register base address
  4135.         (paragraph--multiply by 10h to get physical address)
  4136.  0Dh    WORD    1 Megabyte system video memory aperture
  4137.         0000h if not allocated
  4138.         (Multiply by 100000h to get physical address)
  4139.  0Fh    WORD    4 Megabyte system video memory aperture
  4140.         0000h if not allocated
  4141.         (multiply by 100000h to get physical address)
  4142.  11h    WORD    video memory base address
  4143.         (multiply by 100000h to get physical address)
  4144.  13h    WORD    composite ID of the attached display
  4145.  15h    BYTE    amount of video memory available, in multiples of 256K bytes
  4146.  16h    DWORD    alternate XGA coprocessor register base address.  0 = none.
  4147.  1Ah    var    DMQS Data for further XGA Instances (as above)
  4148. Note:    "Instances" refers to the capability of having up to 8 XGA
  4149.       adapters in one computer.
  4150. SeeAlso: #0059
  4151. --------V-101F02-----------------------------
  4152. INT 10 - VIDEO - XGA - GET SVGA DMQS DATA LENGTH
  4153.     AX = 1F02h
  4154. Return: AL = 1Fh if function supported
  4155.         BX = length of SVGA DMQS data in bytes
  4156. SeeAlso: AX=1F00h,AX=1F03h
  4157. --------V-101F03-----------------------------
  4158. INT 10 - VIDEO - XGA - GET SVGA DMQS DATA
  4159.     AX = 1F03h
  4160.     ES:DI -> buffer for SVGA DMQS data (see #0059)
  4161. Return: AL = 1Fh if function supported
  4162.         ES:DI buffer filled
  4163. SeeAlso: AX=1F00h,AX=1F02h
  4164.  
  4165. Format of SVGA DMQS data:
  4166. Offset    Size    Description    (Table 0059)
  4167.  00h    WORD    offset to DMQS data for next SVGA instance or 0000h
  4168.  02h    BYTE    reserved
  4169.  03h    BYTE    SVGA implementation functional level
  4170.  04h    BYTE    SVGA implementation resolution level
  4171.  05h    WORD    vendor ID
  4172.  07h    WORD    vendor-specific
  4173.  09h  7 BYTEs    reserved
  4174.  10h    BYTE    SVGA linear address window size
  4175.         00h 64K
  4176.         01h 1M
  4177.         02h 2M
  4178.         03h 4M
  4179.  11h    WORD    SVGA linear address window location or 0000h if not allocated
  4180.         (multiply by 10000h [shift left 16 bits] to get physical addr)
  4181.  13h    WORD    attached monitor's composite monitor ID
  4182.  15h    BYTE    available video RAM in multiples of 256K
  4183.  16h 11 BYTEs    reserved
  4184. SeeAlso: #0058
  4185. --------V-103000CX0000-----------------------
  4186. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  4187.     AX = 3000h
  4188.     CX = 0000h
  4189.     DX = 0000h
  4190. Return: CX:DX -> 3270PC configuration table (see #0060)
  4191.     CX:DX = 0000h:0000h if 3270PC Control Program not active
  4192. SeeAlso: AX=1F01h
  4193.  
  4194. Format of 3270 PC configuration table:
  4195. Offset    Size    Description    (Table 0060)
  4196.  00h    BYTE    aspect ratio X
  4197.  01h    BYTE    aspect ratio Y
  4198.  02h    BYTE    monitor type (see #0061)
  4199.  03h    BYTE    reserved
  4200.  04h    BYTE    adapter ID
  4201.         00h = 5151/5272 adapter
  4202.         04h = 5151/5272 with XGA adapter
  4203.         30h = 3295 or 3270PC G/GX adapter
  4204.  05h    BYTE    reserved
  4205.  06h    BYTE    function flags 1 (see #0062)
  4206.  07h    BYTE    function flags 2
  4207.         bit 6: GPI graphics supported
  4208.  08h    WORD    segment address of Control Program Level table (see #0063)
  4209.  0Ah 10 BYTEs    reserved
  4210.  
  4211. (Table 0061)
  4212. Values for 3270 PC monitor type:
  4213.  00h    5151 (mono) or 5272 (color)
  4214.  01h    3295
  4215.  02h    5151 or 5272 with XGA (???) graphics adapter
  4216.  03h    5279 with 3270PC G adapter
  4217.  04h    5379 model C01 with 3270PC GX adapter
  4218.  05h    5379 model M01 with 3270PC GX adapter
  4219.  07h    non-3270PC with 3270 Workstation Program
  4220.  FFh    3270PC Control Program not loaded
  4221.  
  4222. Bitfields for 3270 PC function flags 1:
  4223. Bit(s)    Description    (Table 0062)
  4224.  7    mono text, 1 page
  4225.  6    color text, 1 page
  4226.  5    color text, 4 pages
  4227.  4    CGA color graphics
  4228.  3    720x350 two-color graphics
  4229.  2    360x350 four-color graphics
  4230.  1    720x350 eight-color graphics
  4231.  
  4232. Format of Control Program Level table:
  4233. Offset    Size    Description    (Table 0063)
  4234.  00h    WORD    program version
  4235.         02xxh = 3270PC Control Program v2.xx
  4236.         03xxh = 3270PC Control Program v3.xx
  4237.         04xxh = 3270 Workstation Program v1.xx
  4238.  02h    BYTE    Control Program ID (00h)
  4239.  03h 27 BYTEs    Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  4240. --------a-103800-----------------------------
  4241. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  4242.     AX = 3800h
  4243. Return: ES:DI -> configuration info (see #0064)
  4244. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  4245. Notes:    this call is also used as the installation check by verifying that the
  4246.       returned ES:DI points at valid configuration info
  4247.     Tinytalk v1.09f ignores AL and always returns the configuration info;
  4248.       v1.10 adds several subfunctions selected with AL
  4249. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  4250. SeeAlso: INT 2F/AX=FB00h"AutoBraille"
  4251. Index:    installation check;Tinytalk Personal
  4252.  
  4253. Format of Tinytalk Personal configuration info:
  4254. Offset    Size    Description    (Table 0064)
  4255.  00h  8 BYTEs    signature "TTCONFIG"
  4256.  08h    WORD    size of configuration data, not counting signature, this WORD,
  4257.           or the following byte
  4258.  0Ah    BYTE    ???
  4259.  0Bh    ???    configuration data
  4260. --------a-103801-----------------------------
  4261. INT 10 - Tinytalk Personal v1.10 - ???
  4262.     AX = 3801h
  4263.     DL = ???
  4264. Return: ???
  4265. SeeAlso: AX=3800h,AX=3802h
  4266. --------a-103802-----------------------------
  4267. INT 10 - Tinytalk Personal v1.10 - ???
  4268.     AX = 3802h
  4269.     DL = ???
  4270. Return: ???
  4271. SeeAlso: AX=3800h,AX=3801h
  4272. --------a-103803-----------------------------
  4273. INT 10 - Tinytalk Personal v1.10 - GET ???
  4274.     AX = 3803h
  4275. Return: AL = ???
  4276. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  4277. --------a-103804-----------------------------
  4278. INT 10 - Tinytalk Personal v1.10 - GET ???
  4279.     AX = 3804h
  4280. Return: AX = ???
  4281. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  4282. --------a-103805-----------------------------
  4283. INT 10 - Tinytalk Personal v1.10 - GET ???
  4284.     AX = 3805h
  4285. Return: AL = ???
  4286. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  4287. --------a-103806-----------------------------
  4288. INT 10 - Tinytalk Personal v1.10 - ???
  4289.     AX = 3806h
  4290.     ES:DX -> ASCIZ ???
  4291. Return: ???
  4292. SeeAlso: AX=3800h
  4293. --------a-1039-------------------------------
  4294. INT 10 - Tinytalk Personal v1.10 - ???
  4295.     AH = 39h
  4296. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  4297. Note:    this function was a NOP in TTDEMO.EXE, but may be implemented in other
  4298.       variants of Tinytalk
  4299. --------V-1040-------------------------------
  4300. INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
  4301.     AH = 40h
  4302. Return: nothing
  4303. Desc:    switch the Hercules Graphics Card into graphics mode (720x348)
  4304. SeeAlso: AH=00h,AH=41h
  4305. Index:    video modes;Hercules
  4306. --------V-1041-------------------------------
  4307. INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
  4308.     AH = 41h
  4309. Return: nothing
  4310. Desc:    switch the Hercules Graphics Card into text mode
  4311. SeeAlso: AH=00h,AH=40h
  4312. Index:    video modes;Hercules
  4313. --------V-1042-------------------------------
  4314. INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
  4315.     AH = 42h
  4316. Return: nothing
  4317. SeeAlso: AH=45h
  4318. --------V-1043-------------------------------
  4319. INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
  4320.     AH = 43h
  4321.     AL = page number (0,1)
  4322. Return: nothing
  4323. Desc:    specify which of the two pages of video memory is to be used for
  4324.       output
  4325. SeeAlso: AH=05h,AH=44h,AH=45h
  4326. --------V-1044-------------------------------
  4327. INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
  4328.     AH = 44h
  4329.     AL = drawing function
  4330.         00h clear pixels
  4331.         01h set pixels
  4332.         02h invert pixels
  4333. Return: nothing
  4334. Desc:    specify how graphics output will change the display
  4335. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  4336. --------V-1045-------------------------------
  4337. INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
  4338.     AH = 45h
  4339.     AL = page number (0,1)
  4340. Return: nothing
  4341. Desc:    specify which of the two pages of video memory is visible on screen
  4342. SeeAlso: AH=05h,AH=42h,AH=43h
  4343. --------V-1046-------------------------------
  4344. INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
  4345.     AH = 46h
  4346.     DI = x (0-719)
  4347.     BP = y (0-347)
  4348. Return: nothing
  4349. Note:    function 44h determines operation and function 43h which page to use
  4350. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  4351. --------V-1047-------------------------------
  4352. INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
  4353.     AH = 47h
  4354.     DI = x (0-719)
  4355.     BP = y (0-347)
  4356. Return: AL = 00h pixel clear
  4357.     AL = 01h pixel set
  4358. Note:    function 43h specifies which page is used
  4359. SeeAlso: AH=0Dh,AH=46h
  4360. --------V-1048-------------------------------
  4361. INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
  4362.     AH = 48h
  4363.     DI = x (0-719)
  4364.     BP = y (0-347)
  4365. Return: nothing
  4366. Desc:    specify the location from which to start the next graphics output
  4367. SeeAlso: AH=49h
  4368. --------V-1049-------------------------------
  4369. INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
  4370.     AH = 49h
  4371.     DI = x (0-719)
  4372.     BP = y (0-347)
  4373. Return: nothing
  4374. Note:    function 48h or 49h specify first point, 44h operation and 43h page to
  4375.       use
  4376. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  4377. --------V-104A-------------------------------
  4378. INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
  4379.     AH = 4Ah
  4380.     DI = x coordinate of lower left corner
  4381.     BP = y coordinate of lower left corner
  4382.     BX = height in pixels
  4383.     CX = width in pixels
  4384. Return: nothing
  4385. Desc:    draw a solid rectangle of the specified size at the given location
  4386. SeeAlso: AH=4Eh
  4387. --------V-104B-------------------------------
  4388. INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
  4389.     AH = 4Bh
  4390.     AL = character to display
  4391.     DI = x (0-719)
  4392.     BP = y (0-347)
  4393. Return: nothing
  4394. Note:    unlike the other BIOS character functions character position is
  4395.       specified in pixels rather than rows and columns
  4396. SeeAlso: AH=09h,AH=0Ah
  4397. --------P-104B-------------------------------
  4398. INT 10 - FRIEZE - API
  4399.     AH = 4Bh
  4400.     CL = function
  4401.         00h (v6.x-) print window
  4402.         AL = mode
  4403.             00h character
  4404.             01h normal
  4405.             02h sideways
  4406.         01h load window
  4407.         ES:BX -> ASCIZ filename from which to read
  4408.         02h save window
  4409.         ES:BX -> ASCIZ filename to which to write
  4410.         03h set print width
  4411.         AL = width in 1/4 inches
  4412.         04h set print height
  4413.         AL = height in 1/4 inches
  4414.         05h reserved
  4415.         06h set left margin
  4416.         AL = printout margin in 1/4 inches
  4417.         07h set window size
  4418.         ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  4419.         08h reserved
  4420.         09h set patterns
  4421.         ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  4422.         0Ah get patterns
  4423.         ES:BX -> 16-BYTE buffer for color correspondences
  4424.         0Bh set mode
  4425.         AL = mode
  4426.         0Ch (v7.41) ???
  4427.         AL = ???
  4428.             00h ??? (calls original INT 05)
  4429.             else ???
  4430.         0Dh (v7.41) ???
  4431.         AL = ???
  4432.             00h ??? (calls original INT 05)
  4433.             else ???
  4434.         0Eh (v7.41) ???
  4435.         ???
  4436.         0Fh get window
  4437.         ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  4438.         10h set print options
  4439.         ES:BX -> printer options in same format as FRIEZE cmdline
  4440.         11h initialize
  4441.         ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  4442.         12h (v7.41) ???
  4443.         ???
  4444.         13h (v7.41) ???
  4445.         ???
  4446.         14h get version
  4447.         Return: AH = major version (00h if FRIEZE version before 7)
  4448.             AL = minor version
  4449.         15h set parameters
  4450.         ES:BX -> parameter table (see #0066)
  4451.         16h get parameters
  4452.         ES:BX -> buffer for parameter table (see #0066)
  4453.         17h get printer resolution
  4454.         ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  4455.         18h (v8.0 only) reserved
  4456.         50h (v7.41) get ???
  4457.         Return: AX = ???
  4458.         51h (v7.41) get ???
  4459.         Return: ES = ??? (seen 2348h)
  4460.             AX = ??? (seen 8432h)
  4461. Return: AX = status (see #0065)
  4462. SeeAlso: AH=0Fh/SI=F123h
  4463.  
  4464. (Table 0065)
  4465. Values for FRIEZE function status:
  4466.  00h    successful
  4467.  01h    user aborted printout with ESC
  4468.  02h    reserved
  4469.  03h    file read error
  4470.  04h    file write error or printer error
  4471.  05h    file not found
  4472.  06h    invalid header (not an image or wrong screen mode) or can't create file
  4473.  07h    file close error
  4474.  08h    disk error
  4475.  09h    (v7.0+) printer error
  4476.  0Ah    invalid function
  4477.  0Bh    (v7.0+) can't create file
  4478.  0Ch    (v7.0+) wrong video mode
  4479.  
  4480. Format of FRIEZE parameter table:
  4481. Offset    Size    Description    (Table 0066)
  4482.  00h    WORD    top margin (1/100 inch)
  4483.  02h    WORD    left margin (1/100 inch)
  4484.  04h    WORD    horizontal size (1/100 inch)
  4485.  06h    WORD    vertical size (1/100 inch)
  4486.  08h    WORD    quality/draft mode
  4487.         00h draft mode
  4488.         01h quality mode
  4489.         02h use horizontal/vertical resolution for output resolution
  4490.  0Ah    WORD    printer horizontal resolution (dots per inch)
  4491.  0Ch    WORD    printer vertical resolution (dots per inch)
  4492.  0Eh    WORD    reserved (FFFFh)
  4493. Note:    any field which should remain unchanged may be filled with FFFFh
  4494. --------V-104C-------------------------------
  4495. INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
  4496.     AH = 4Ch
  4497.     AL = quadrant (1 = upper right, 2 = upper left, etc)
  4498.     DI = x coordinate of center
  4499.     BP = y coordinate of center
  4500.     BX = radius
  4501. Return: nothing
  4502. SeeAlso: AH=49h,AH=4Dh
  4503. --------V-104D-------------------------------
  4504. INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
  4505.     AH = 4Dh
  4506.     DI = x of center
  4507.     BP = y of center
  4508.     BX = radius
  4509. Return: nothing
  4510. SeeAlso: AH=49h,AH=4Ch
  4511. --------V-104E-------------------------------
  4512. INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
  4513.     AH = 4Eh
  4514.     DI = x coordinate of an interior point
  4515.     BP = y coordinate of an interior point
  4516. Return: nothing
  4517. Desc:    fill a convex polygonal area bounded by a contiguous line of the
  4518.       opposite color with the border color
  4519. Note:    the first fill makes the figure solid, the second erases it
  4520. SeeAlso: AH=4Ah
  4521. --------V-104E00-----------------------------
  4522. INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
  4523.     AX = 4E00h
  4524.     ES:DI -> 256-byte buffer for XGA information (see #0067)
  4525. Return: AL = 4Eh if function supported
  4526.         AH = status
  4527.         00h successful
  4528.         else error code
  4529. Desc:    determine whether VESA XGA extensions are present and the capabilities
  4530.       supported by the display adapter
  4531. SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
  4532. Index:    installation check;VESA XGA
  4533.  
  4534. Format of XGA information buffer:
  4535. Offset    Size    Description    (Table 0067)
  4536.  00h  4 BYTEs    signature ("VESA")
  4537.  04h    WORD    VESA version number
  4538.  06h    DWORD    pointer to ASCIZ OEM string
  4539.  0Ah    DWORD    environment flags (see #0068)
  4540.  0Eh    WORD    number of XGA adapters installed (other VESA XGA functions
  4541.           require a handle indicating which adapter to use)
  4542.  10h 240 BYTEs    reserved
  4543.  
  4544. Bitfields for XGA environment flags:
  4545. Bit(s)    Description    (Table 0068)
  4546.  0-1    system bus (00 = MCA, 01 = ISA, 10 = EISA)
  4547.  2    bus mastering available
  4548.  3-31    reserved
  4549. --------V-104E01----------------------------
  4550. INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
  4551.     AX = 4E01h
  4552.     DX = XGA handle (0 to number of XGAs-1)
  4553.     ES:DI -> 256-byte buffer for subsystem information (see #0069)
  4554. Return: AL = 4Eh if function supported
  4555.     AH = status
  4556.         00h     function successful
  4557.         else error code
  4558. SeeAlso: AX=4E00h,AX=4E02h
  4559.  
  4560. Format of XGA subsystem information:
  4561. Offset    Size    Description    (Table 0069)
  4562.  00h    DWORD    pointer to null-terminated board OEM string
  4563.  04h    DWORD    capabilities (see #0070)
  4564.  08h    DWORD    pointer to 8KB XGA ROM (or NULL)
  4565.  0Ch    DWORD    pointer to the XGA memory mapped registers
  4566.  10h    WORD    base address of XGA I/O registers (21x0h)
  4567.  12h    DWORD    pointer to start of physical video memory
  4568.         (A000h:0000h or B000h:0000h)
  4569.  16h    DWORD    physical address of 4MB aperture (or NULL if none)
  4570.  1Ah    DWORD    physical address of 1MB aperture (or NULL if none)
  4571.  1Eh    DWORD    physical address of 64KB aperture (or NULL if not enabled)
  4572.  22h    DWORD    physical address of OEM aperture (or NULL if none)
  4573.  26h    WORD    size of OEM aperture in 64KByte units
  4574.  28h    DWORD    pointer to list of video modes
  4575.         The list is a series of WORDs terminated by FFFFh
  4576.  2Ch    WORD    number of 64KB blocks on the board
  4577.  2Eh    DWORD    XGA manufacturer ID
  4578.         byte 0 POS data index 1
  4579.         byte 1 is index 2
  4580.         byte 2 is 21xAh index 75h
  4581.  32h 206 BYTEs    reserved
  4582.  
  4583. Bitfields for XGA capabilities:
  4584. Bit(s)    Description    (Table 0070)
  4585.  0-1    board bus architecture: 0=MCA, 1=ISA, 3=EISA
  4586.  2-3    reserved
  4587.  4-6    DMA Channel assigned for acquiring bus mastership (only for ISA bus)
  4588.  7    DMA Channel Status (ISA only). enabled if set
  4589.  8-31    reserved
  4590. --------V-104E02-----------------------------------
  4591. INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
  4592.     AX = 4E02h
  4593.     CX = Video mode
  4594.     DX = XGA handle
  4595.     ES:DI -> 256 byte buffer for mode information (see #0071)
  4596. Return: AL = 4Eh if function supported
  4597.     AH = status
  4598.         00h     function successful
  4599.         else error code
  4600. SeeAlso: AX=4E00h,AX=4E01h
  4601.  
  4602. Format of XGA mode information:
  4603. Offset    Size    Description    (Table 0071)
  4604.  00h    WORD    attributes of the mode (see #0072)
  4605.  02h    WORD    bytes per logical scanline
  4606.  04h    WORD    horizontal resolution in pixels
  4607.  06h    WORD    vertical resolution in scanlines
  4608.  08h    BYTE    character Width in pixels
  4609.  09h    BYTE    character Height in pixels
  4610.  0Ah    BYTE    number of planes
  4611.  0Bh    BYTE    bits per pixels
  4612.  0Ch    BYTE    memory model (see #0073)
  4613.  0Dh    BYTE    number of Image Pages
  4614.  0Eh    BYTE    number of Red bits
  4615.  0Fh    BYTE    bit position of Red bit field
  4616.  10h    BYTE    number of Green bits
  4617.  11h    BYTE    bit position of Green bit field
  4618.  12h    BYTE    number of Blue bits
  4619.  13h    BYTE    bit position of Blue bit field
  4620.  14h    BYTE    number of Reserved bits
  4621.  15h    BYTE    bit position of Reserved bit field
  4622.  16h 235 BYTEs    reserved
  4623.  
  4624. Bitfields for XGA mode attributes:
  4625. Bit(s)    Description    (Table 0072)
  4626.  0    set if mode is supported
  4627.  1    reserved
  4628.  2    output is supported by the BIOS
  4629.  3    reserved
  4630.  4    if set this is a graphics mode (VGA registers inactive, XGA active),
  4631.       if clear this is a text mode (VGA registers active, XGA inactive)
  4632.  
  4633. (Table 0073)
  4634. Values for XGA video memory model:
  4635.  00h    Text Mode
  4636.  01h    CGA graphics
  4637.  02h    Hercules graphics
  4638.  03h    4-planar graphics
  4639.  04h    Packed Pixel
  4640.  05h    Non-chain 4, 256 color
  4641.  06h    Direct Color
  4642.  07h    YUV-24
  4643. --------V-104E03-----------------------------------
  4644. INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
  4645.     AX = 4E03h
  4646.     BX = video mode
  4647.     CX = other command flags
  4648.          bit 0  If clear the feature connector is set to the default state
  4649.     DX = XGA handle
  4650.     ES:DI -> 256 byte buffer
  4651. Return: AL = 4Eh if function supported
  4652.     AH = status
  4653.         00h     function successful
  4654.         else error code
  4655. SeeAlso: AH=00h,AX=4E04h,AX=4F02h
  4656. --------V-104E04-----------------------------------
  4657. INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
  4658.     AX = 4E04h
  4659.     DX = XGA handle
  4660. Return: AL = 4Eh if function supported
  4661.     AH = status
  4662.         00h     function successful
  4663.         BX??? = current mode
  4664.         else error code
  4665. SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
  4666. --------V-104E05-----------------------------------
  4667. INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
  4668.     AX = 4E05h
  4669.     BX = Feature Connector State (see #0074)
  4670.     DX = XGA handle
  4671. Return: AL = 4Eh if function supported
  4672.     AH = status
  4673.         00h     function successful
  4674.         else error code
  4675. SeeAlso: AX=4E00h,AX=4E06h
  4676.  
  4677. Bitfields for XGA Feature Connector State:
  4678. Bit(s)    Description    (Table 0074)
  4679.  0    Feature Connector is enabled
  4680.  1    Feature Connector is in Output Mode rather than Input Mode
  4681.  2-15    reserved (0)
  4682. --------V-104E06-----------------------------------
  4683. INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
  4684.     AX = 4E06h
  4685.     DX = XGA handle
  4686. Return: AL = 4Eh if function supported
  4687.     AH = status
  4688.         00h     function successful
  4689.         else error code
  4690.     BX = Feature Connector State (see #0074)
  4691. SeeAlso: AX=4E00h,AX=4E05h
  4692. --------V-104F00-----------------------------
  4693. INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
  4694.     AX = 4F00h
  4695.     ES:DI -> buffer for SuperVGA information (see #0075)
  4696. Return: AL = 4Fh if function supported
  4697.     AH = status
  4698.         00h successful
  4699.         ES:DI buffer filled
  4700.         01h failed
  4701.         ---VBE v2.0---
  4702.         02h function not supported by current hardware configuration
  4703.         03h function invalid in current video mode
  4704. Desc:    determine whether VESA BIOS extensions are present and the capabilities
  4705.       supported by the display adapter
  4706. SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h"SOLLEX",AX=A00Ch
  4707. Index:    installation check;VESA SuperVGA
  4708.  
  4709. Format of SuperVGA information:
  4710. Offset    Size    Description    (Table 0075)
  4711.  00h  4 BYTEs    (ret) signature ("VESA")
  4712.         (call) VESA 2.0 request signature ("VBE2"), required to receive
  4713.           version 2.0 info
  4714.  04h    WORD    VESA version number (one-digit minor version)
  4715.  06h    DWORD    pointer to OEM name
  4716.         "761295520" for ATI
  4717.  0Ah    DWORD    capabilities flags (see #0076)
  4718.  0Eh    DWORD    pointer to list of supported VESA and OEM video modes
  4719.         (list of words terminated with FFFFh)
  4720.  12h    WORD    total amount of video memory in 64K blocks
  4721. ---VBE v1.x ---
  4722.  14h 236 BYTEs    reserved
  4723. ---VBE v2.0 ---
  4724.  14h    WORD    OEM software version
  4725.  16h    DWORD    pointer to vendor name
  4726.  1Ah    DWORD    pointer to product name
  4727.  1Eh    DWORD    pointer to product revision string
  4728.  22h 222 BYTEs    reserved
  4729. 100h 256 BYTEs    OEM scratchpad
  4730. Notes:    the list of supported video modes is stored in the reserved portion of
  4731.       the SuperVGA information record by some implementations, and it may
  4732.       thus be necessary to either copy the mode list or use a different
  4733.       buffer for all subsequent VESA calls
  4734.     the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  4735.       buffer should be 262 bytes to ensure that it is not overrun; for
  4736.       v2.0, the buffer should be 512 bytes
  4737.     the S3 specific video modes will most likely follow the FFFFh
  4738.       terminator at the end of the standard modes.    A search must then
  4739.       be made to find them, FFFFh will also terminate this second list
  4740.  
  4741. Bitfields for VESA capabilities:
  4742. Bit(s)    Description    (Table 0076)
  4743.  0    DAC can be switched into 8-bit mode
  4744.  1    non-VGA controller
  4745.  2    programmed DAC with blank bit
  4746.  3-31    reserved
  4747. SeeAlso: #0075
  4748. --------V-104F01-----------------------------
  4749. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  4750.     AX = 4F01h
  4751.     CX = SuperVGA video mode
  4752.     ES:DI -> 256-byte buffer for mode information (see #0077)
  4753. Return: AL = 4Fh if function supported
  4754.     AH = status
  4755.         00h successful
  4756.         ES:DI buffer filled
  4757.         01h failed
  4758. Desc:    determine the attributes of the specified video mode
  4759. SeeAlso: AX=4F00h,AX=4F02h
  4760.  
  4761. Format of VESA SuperVGA mode information:
  4762. Offset    Size    Description    (Table 0077)
  4763.  00h    WORD    mode attributes (see #0078)
  4764.  02h    BYTE    window attributes, window A (see #0079)
  4765.  03h    BYTE    window attributes, window B (see #0079)
  4766.  04h    WORD    window granularity in KB
  4767.  06h    WORD    window size in KB
  4768.  08h    WORD    start segment of window A
  4769.  0Ah    WORD    start segment of window B
  4770.  0Ch    DWORD    -> FAR window positioning function (equivalent to AX=4F05h)
  4771.  10h    WORD    bytes per scan line
  4772. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  4773.  12h    WORD    width in pixels (graphics) or characters (text)
  4774.  14h    WORD    height in pixels (graphics) or characters (text)
  4775.  16h    BYTE    width of character cell in pixels
  4776.  17h    BYTE    height of character cell in pixels
  4777.  18h    BYTE    number of memory planes
  4778.  19h    BYTE    number of bits per pixel
  4779.  1Ah    BYTE    number of banks
  4780.  1Bh    BYTE    memory model type (see #0080)
  4781.  1Ch    BYTE    size of bank in KB
  4782.  1Dh    BYTE    number of image pages
  4783.  1Eh    BYTE    reserved (0)
  4784. ---VBE v1.2+---
  4785.  1Fh    BYTE    red mask size
  4786.  20h    BYTE    red field position
  4787.  21h    BYTE    green mask size
  4788.  22h    BYTE    green field size
  4789.  23h    BYTE    blue mask size
  4790.  24h    BYTE    blue field size
  4791.  25h    BYTE    reserved mask size
  4792.  26h    BYTE    reserved mask position
  4793.  27h    BYTE    direct color mode info
  4794.         bit 0: color ramp is programmable
  4795.         bit 1: bytes in reserved field may be used by application
  4796. ---VBE v2.0 ---
  4797.  28h    DWORD    physical address of linear video buffer
  4798.  2Ch    DWORD    pointer to start of offscreen memory
  4799.  30h    WORD    KB of offscreen memory
  4800.  32h 206 BYTEs    reserved (0)
  4801.  
  4802. Bitfields for VESA SuperVGA mode attributes:
  4803. Bit(s)    Description    (Table 0078)
  4804.  0    mode supported
  4805.  1    optional information available
  4806.  2    BIOS output supported
  4807.  3    set if color, clear if monochrome
  4808.  4    set if graphics mode, clear if text mode
  4809. ---VBE v2.0 ---
  4810.  5    mode is not VGA-compatible
  4811.  6    bank-switched mode not supported
  4812.  7    linear framebuffer mode supported
  4813.  
  4814. Bitfields for VESA SuperVGA window attributes:
  4815. Bit(s)    Description    (Table 0079)
  4816.  0    exists
  4817.  1    readable
  4818.  2    writable
  4819.  3-7    reserved
  4820.  
  4821. (Table 0080)
  4822. Values for VESA SuperVGA memory model type:
  4823.  00h    text
  4824.  01h    CGA graphics
  4825.  02h    HGC graphics
  4826.  03h    16-color (EGA) graphics
  4827.  04h    packed pixel graphics
  4828.  05h    "sequ 256" (non-chain 4) graphics
  4829.  06h    direct color (HiColor, 24-bit color)
  4830.  07h    YUV (luminance-chrominance, also called YIQ)
  4831.  08h-0Fh reserved for VESA
  4832.  10h-FFh OEM memory models
  4833. --------V-104F02-----------------------------
  4834. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  4835.     AX = 4F02h
  4836.     BX = mode (see #0081,#0082)
  4837.         bit 15 set means don't clear video memory
  4838.         bit 14 set means enable linear framebuffer mode (VBE v2.0+)
  4839. Return: AL = 4Fh if function supported
  4840.     AH = status
  4841.         00h successful
  4842.         01h failed
  4843. SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
  4844.  
  4845. (Table 0081)
  4846. Values for VESA video mode:
  4847.  00h-FFh OEM video modes (see #0009 at AH=00h)
  4848.  100h    640x400x256
  4849.  101h    640x480x256
  4850.  102h    800x600x16
  4851.  103h    800x600x256
  4852.  104h    1024x768x16
  4853.  105h    1024x768x256
  4854.  106h    1280x1024x16
  4855.  107h    1280x1024x256
  4856.  108h    80x60 text
  4857.  109h    132x25 text
  4858.  10Ah    132x43 text
  4859.  10Bh    132x50 text
  4860.  10Ch    132x60 text
  4861. ---VBE v1.2---
  4862.  10Dh    320x200x32K
  4863.  10Eh    320x200x64K
  4864.  10Fh    320x200x16M
  4865.  110h    640x480x32K
  4866.  111h    640x480x64K
  4867.  112h    640x480x16M
  4868.  113h    800x600x32K
  4869.  114h    800x600x64K
  4870.  115h    800x600x16M
  4871.  116h    1024x768x32K
  4872.  117h    1024x768x64K
  4873.  118h    1024x768x16M
  4874.  119h    1280x1024x32K
  4875.  11Ah    1280x1024x64K
  4876.  11Bh    1280x1024x16M
  4877. ---VBE 2.0---
  4878.  120h    1600x1200x256
  4879.  121h    1600x1200x32K
  4880.  122h    1600x1200x64K
  4881. 81FFh    special full-memory access mode
  4882. Note:    the special mode 81FFh preserves the contents of the video memory and
  4883.       gives access to all of the memory; VESA recommends that the special
  4884.       mode be a packed-pixel mode
  4885. SeeAlso: #0009,#0010,#0082,#0116
  4886. Index:    video modes;VESA
  4887.  
  4888. (Table 0082)
  4889. Values for S3 OEM video mode:
  4890.  201h    640x480x256
  4891.  202h    800x600x16
  4892.  203h    800x600x256
  4893.  204h    1024x768x16
  4894.  205h    1024x768x256
  4895.  206h    1280x960x16
  4896.  207h    1152x864x256 (Diamond Stealth 64)
  4897.  208h    1280x1024x16
  4898.  209h    1152x864x32K
  4899.  20Ah    1152x864x64K (Diamond Stealth 64)
  4900.  20Bh    1152x864x4G
  4901.  211h    640x480x64K (Diamond Stealth 24)
  4902.  211h    640x400x4G  (Diamond Stealth64 Video / Stealth64 Graphics)
  4903.  212h    640x480x16M (Diamond Stealth 24)
  4904.  301h    640x480x32K
  4905. Note:    these modes are only available on video cards using S3's VESA driver
  4906. SeeAlso: #0081,#0116,#0649 at INT 1A/AX=B102h
  4907. Index:    video modes;S3
  4908. --------V-104F03-----------------------------
  4909. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  4910.     AX = 4F03h
  4911. Return: AL = 4Fh if function supported
  4912.     AH = status
  4913.         00h successful
  4914.         BX = video mode (see #0081,#0082)
  4915.             bit 14: linear frame buffer enabled (VBE v2.0+)
  4916.             bit 15: don't clear video memory
  4917.         01h failed
  4918. SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
  4919. --------V-104F04-----------------------------
  4920. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  4921.     AX = 4F04h
  4922.     DL = subfunction
  4923.         00h get state buffer size
  4924.         Return: BX = number of 64-byte blocks needed
  4925.         01h save video states
  4926.         ES:BX -> buffer
  4927.         02h restore video states
  4928.         ES:BX -> buffer
  4929.     CX = states to save/restore (see #0083)
  4930. Return: AL = 4Fh if function supported
  4931.     AH = status
  4932.         00h successful
  4933.         01h failed
  4934.  
  4935. Bitfields for VESA SuperVGA states to save/restore:
  4936. Bit(s)    Description    (Table 0083)
  4937.  0    video hardware state
  4938.  1    video BIOS data state
  4939.  2    video DAC state
  4940.  3    SuperVGA state
  4941. --------V-104F05-----------------------------
  4942. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  4943.     AX = 4F05h
  4944.     BH = subfunction
  4945.         00h select video memory window
  4946.         DX = window address in video memory (in granularity units)
  4947.         01h get video memory window
  4948.         Return: DX = window address in video memory (in gran. units)
  4949.     BL = window number
  4950.         00h window A
  4951.         01h window B
  4952. Return: AL = 4Fh if function supported
  4953.     AH = status
  4954.         00h successful
  4955.         01h failed
  4956. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  4957. --------V-104F06-----------------------------
  4958. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS)
  4959.     AX = 4F06h
  4960.     BL = subfunction
  4961.         00h set scan line length
  4962.         CX = desired width in pixels
  4963.         01h get scan line length
  4964. Return: AL = 4Fh if function supported
  4965.     AH = status
  4966.         00h successful
  4967.         01h failed
  4968.     BX = bytes per scan line
  4969.     CX = number of pixels per scan line
  4970.     DX = maximum number of scan lines
  4971. Notes:    if the desired width is not achievable, the next larger width will be
  4972.       set
  4973.     the scan line may be wider than the visible area of the screen
  4974.     this function is valid in text modes, provided that pixel values are
  4975.       multiplied by the character cell width/height
  4976. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h/BL=02h,AX=4F06h/BL=03h,AX=4F07h
  4977. --------V-104F06BL02-------------------------
  4978. INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES)
  4979.     AX = 4F06h
  4980.     BL = 02h
  4981.     CX = desired scanline width in bytes
  4982. Return: AL = 4Fh if function supported
  4983.     AH = status
  4984.         00h successful
  4985.         01h failed
  4986.     BX = bytes per scan line
  4987.     CX = number of pixels per scan line
  4988.     DX = maximum number of scan lines
  4989. Notes:    if the desired width is not achievable, the next larger width will be
  4990.       set
  4991.     the scan line may be wider than the visible area of the screen
  4992.     this function is valid in text modes, provided that pixel values are
  4993.       multiplied by the character cell width/height
  4994. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=03h,AX=4F07h
  4995. --------V-104F06BL03-------------------------
  4996. INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH
  4997.     AX = 4F06h
  4998.     BL = 03h
  4999. Return: AL = 4Fh if function supported
  5000.     AH = status
  5001.         00h successful
  5002.         01h failed
  5003.     BX = maximum bytes per scan line
  5004.     CX = maximum number of pixels per scan line
  5005. Notes:    this function is valid in text modes, provided that pixel values are
  5006.       multiplied by the character cell width/height
  5007. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=02h,AX=4F07h
  5008. --------V-104F07-----------------------------
  5009. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  5010.     AX = 4F07h
  5011.     BL = subfunction
  5012.         00h,80h set display start
  5013.         CX = leftmost displayed pixel in scan line
  5014.         DX = first displayed scan line
  5015.         01h get display start
  5016.         Return: BH = 00h
  5017.             CX = leftmost displayed pixel in scan line
  5018.             DX = first displayed scan line
  5019.     BH = 00h (reserved)
  5020. Return: AL = 4Fh if function supported
  5021.     AH = status
  5022.         00h successful
  5023.         01h failed
  5024. Notes:    this function is valid in text modes, provided that values are
  5025.       multiplied by the character cell width/height
  5026.     subfunction 80h waits until vertical retrace before changing the
  5027.       display start address (VBE v2.0+)
  5028. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  5029. --------V-104F08-----------------------------
  5030. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  5031.     AX = 4F08h
  5032.     BL = subfunction
  5033.         00h set DAC palette width
  5034.         BH = desired number of bits per primary color
  5035.         01h get DAC palette width
  5036. Return: AL = 4Fh if function supported
  5037.     AH = status
  5038.         00h successful
  5039.         01h failed
  5040.     BH = current number of bits per primary (06h = standard VGA)
  5041. --------V-104F09-----------------------------
  5042. INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
  5043.     AX = 4F09h
  5044.     BL = subfunction
  5045.         00h set (primary) palette
  5046.         01h get (primary) palette
  5047.         02h set secondary palette data
  5048.         03h get secondary palette data
  5049.         80h set palette during vertical retrace
  5050.     CX = number of entries to change
  5051.     DX = starting palette index
  5052.     ES:DI -> palette buffer (see #0084)
  5053. Return: AL = 4Fh if function supported
  5054.     AH = status
  5055.         00h successful
  5056.         01h failed
  5057. SeeAlso: AX=4F0Ah,AX=D000h"S3VBE"
  5058.  
  5059. Format of VESA VBE palette entry:
  5060. Offset    Size    Description    (Table 0084)
  5061.  00h    BYTE    red
  5062.  01h    BYTE    green
  5063.  02h    BYTE    blue
  5064.  03h    BYTE    alpha or alignment byte
  5065. --------V-104F0ABL00-------------------------
  5066. INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE INTERFACE
  5067.     AX = 4F0Ah
  5068.     BL = 00h
  5069. Return: AL = 4Fh if function supported
  5070.     AH = status
  5071.         00h successful
  5072.         ES:DI -> protected-mode table (see #0085)
  5073.         CX = length of table in bytes, included protected-mode code
  5074.         01h failed
  5075. SeeAlso: AX=4F00h,AX=4F05h,AX=4F07h,AX=4F09h
  5076.  
  5077. Format of VESA VBE 2.0 protected-mode table:
  5078. Offset    Size    Description    (Table 0085)
  5079.  00h    WORD    offset (within table) of protected-mode code for Function 5
  5080.           (Set Window)
  5081.  02h    WORD    offset of protected-mode code for Function 7 (Set Disp Start)
  5082.  04h    WORD    offset of protected-mode code for Function 9 (Set Primary
  5083.           Palette)
  5084.  06h    WORD    offset (within table) of list of I/O ports and memory locations
  5085.           for which I/O privilege may be required in protected mode
  5086.           (0000h if no list)
  5087.  08h    var    code and optional port/memory list
  5088. --------V-104F0A-----------------------------
  5089. INT 10 - VESA SuperVGA BIOS v2.0 beta - GET PROTECTED-MODE CODE
  5090.     AX = 4F0Ah
  5091.     BX = function to be copied (see #0086)
  5092. Return: AL = 4Fh if function supported
  5093.     AH = status
  5094.         00h successful
  5095.         CX = number of bytes to copy
  5096.         ES:DI -> code for requested function
  5097.         01h failed
  5098. SeeAlso: AX=4F09h,AX=D000h"S3VBE"
  5099.  
  5100. (Table 0086)
  5101. Values for VESA VBE protected-mode function identifiers:
  5102.  0001h    set bank (see AX=4F05h)
  5103.  0002h    set display start (see AX=4F07h)
  5104.  0003h    set palette (see AX=4F09h)
  5105. --------V-104F0B-----------------------------
  5106. INT 10 - VESA SuperVGA BIOS - RESERVED FOR FUTURE SVGA FUNCTIONS
  5107.     AX = 4F0Bh-4F0Fh
  5108. SeeAlso: AX=4F00h
  5109. --------p-104F10BL00-------------------------
  5110. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
  5111.     AX = 4F10h
  5112.     BL = 00h
  5113.     ES:DI = 0000h:0000h (reserved for future use as pointer to info block)
  5114. Return: AL = 4Fh if function supported (installed)
  5115.     AH = call status
  5116.         00h successful
  5117.         else failed
  5118.     ---if successful---
  5119.     BL = VBE/PM version (bits 7-4: major, bits 3-0: minor)
  5120.     BH = supported states (see #0087)
  5121.     ES:DI unchanged
  5122. Index:    installation check;VESA VBE/Power Management|VESA DPMS
  5123. SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h
  5124.  
  5125. Bitfields for VESA VBE/PM supported power states:
  5126. Bit(s)    Description    (Table 0087)
  5127.  0    standby
  5128.  1    suspend
  5129.  2    off
  5130.  3    reduced on
  5131. --------p-104F10BL01-------------------------
  5132. INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
  5133.     AX = 4F10h
  5134.     BL = 01h
  5135.     BH = new state (see #0088)
  5136. Return: AL = 4Fh if function supported
  5137.     AH = call status
  5138.         00h successful
  5139.         else failed
  5140. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch
  5141.  
  5142. (Table 0088)
  5143. Values for VESA VBE/PM power state:
  5144.  00h    On
  5145.  01h    standby
  5146.  02h    suspend
  5147.  04h    Off
  5148.  08h    reduced On (for flat screens)
  5149. --------p-104F10BL02-------------------------
  5150. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
  5151.     AX = 4F10h
  5152.     BL = 02h
  5153. Return: AL = 4Fh if function supported
  5154.     AH = call status
  5155.         00h successful
  5156.            BH = current power state (see #0088)
  5157.         else failed
  5158. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h,AX=A00Dh
  5159. --------V-104F11-----------------------------
  5160. INT 10 - VESA VBE/FP (Flat Panel Interface) - API
  5161.     AX = 4F11h
  5162.     BL = function
  5163.         00h installation check / get capabilities
  5164.     other registers vary by function
  5165. Return: varies by function
  5166. --------V-104F12-----------------------------
  5167. INT 10 - VESA VBE/CI (Cursor Interface) - API
  5168.     AX = 4F12h
  5169.     BL = function
  5170.     other registers vary by function
  5171. Return: varies by function
  5172. SeeAlso: AX=4F4Dh
  5173. --------s-104F13BX0000-----------------------
  5174. INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK
  5175.     AX = 4F13h
  5176.     BX = 0000h
  5177. Return: AL = 4Fh if function supported
  5178.         AH = status
  5179.         00h successful
  5180.             BX = version (0010h for 1.00 -- note nonstandard value!)
  5181.         01h failed
  5182. SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005h
  5183. --------s-104F13BX0001-----------------------
  5184. INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE
  5185.     AX = 4F13h
  5186.     BX = 0001h
  5187.     CX = 0000h ???
  5188.     DX = type of device
  5189.         0001h Wave device
  5190.         0002h MIDI device
  5191.         0003h Volume device
  5192. Return: AL = 4Fh if function supported
  5193.     AH = status
  5194.         00h successful
  5195.         CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2]
  5196.         01h failed
  5197. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h
  5198. --------s-104F13BX0002-----------------------
  5199. INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
  5200.     AX = 4F13h
  5201.     BX = 0002h
  5202.     CX = handle
  5203.     DX = query
  5204.         0001h return length of GeneralDeviceClass
  5205.         0002h return copy    of GeneralDeviceClass (see #0089)
  5206.         0003h return length of Volume Info Structure
  5207.         0004h return copy    of Volume Info Structure (see #0099)
  5208.         0005h return length of Volume Services Structure
  5209.         0006h return copy    of Volume Services Structure (see #0101)
  5210.         0007h-000Fh reserved
  5211.         0010h-FFFFh device-specific
  5212.     SI:DI -> buffer (functions 0002h,0004h,0006h)
  5213. Return: AL = 4Fh if function supported
  5214.     AH = status
  5215.         00h successful
  5216.         SI:DI = length (functions 1,3,5)
  5217.         SI:DI buffer filled (functions 2,4,6)
  5218.         01h failed
  5219. Note:    functions 0003h to 0006h are only supported for the Volume device
  5220.  
  5221. Format of GeneralDeviceClass structure:
  5222. Offset    Size    Description    (Table 0089)
  5223.  00h    4 BYTEs    name of the structure ("GENI")
  5224.  04h    DWORD    structure length
  5225.  08h    WORD    type of device (1=Wave, 2=MIDI)
  5226.  0Ah    WORD    version of VESA driver support (0100h for 1.00)
  5227.  10h    var    for CX=handle for Wave device:
  5228.             Wave Info structure (see #0090)
  5229.             some bytes ???
  5230.         for CX=handle for MIDI device:
  5231.             MIDI Info Structure (see #0095)
  5232.             first 8 bytes of MIDI Service Structure ???
  5233. SeeAlso: #0099,#0101
  5234.  
  5235. Format of WAVE Info Structure:
  5236. Offset    Size    Description    (Table 0090)
  5237.  00h    4 BYTEs    name of the structure ("WAVI")
  5238.  04h    DWORD    structure length [0000007Eh]
  5239.  08h    DWORD    driver software version [00000003h]
  5240.  0Ch 32 BYTEs    vendor name, etc. (ASCIZ string)
  5241.  2Ch 32 BYTEs    vendor product name
  5242.  4Ch 32 BYTEs    vendor chip/hardware description
  5243.  6Ch    BYTE    installed board number
  5244.  6Dh    3 BYTEs    unused data
  5245.  70h    DWORD    feature bits (see #0091)
  5246.  74h    WORD    user determined preference field
  5247.  76h    WORD    memory required for driver use [0200h]
  5248.  78h    WORD    number of timer tick callbacks per second [0000h]
  5249.  7Ah    WORD    channels: 1 = mono, 2 = stereo
  5250.         stereo is assumed to be interleaved data
  5251.  7Ch    WORD    bitfield of max sample sizes (see #0092)
  5252. SeeAlso: #0095
  5253.  
  5254. Bitfields for Wave feature bits:
  5255. Bit(s)    Description    (Table 0091)
  5256.  0    8000hz Mono Playback
  5257.  1    8000hz Mono Record
  5258.  2    8000hz Stereo Record
  5259.  3    8000hz Stereo Playback
  5260.  4    8000hz Full Duplex Play/Record
  5261.  5    11025hz Mono Playback
  5262.  6    11025hz Mono Record
  5263.  7    11025hz Stereo Record
  5264.  8    11025hz Stereo Playback
  5265.  9    11025hz Full Duplex Play/Record
  5266.  10    22050hz Mono Playback
  5267.  11    22050hz Mono Record
  5268.  12    22050hz Stereo Record
  5269.  13    22050hz Stereo Playback
  5270.  14    22050hz Full Duplex Play/Record
  5271.  15    44100hz Mono Playback
  5272.  16    44100hz Mono Record
  5273.  17    44100hz Stereo Record
  5274.  18    44100hz Stereo Playback
  5275.  19    44100hz Full Duplex Play/Record
  5276.  20-26    reserved (0)
  5277.  27    driver must pre-handle the data
  5278.  28    Variable Sample mono   playback
  5279.  29    Variable Sample stereo playback
  5280.  30    Variable Sample mono   record
  5281.  31    Variable Sample stereo record
  5282.  
  5283. (Table 0092)
  5284. Values for Sample data size:
  5285.  01h    8bit play
  5286.  02h    16bit play
  5287.  10h    8bit record
  5288.  20h    16bit record
  5289.  
  5290. Format of WAVE Audio Services structure:
  5291. Offset    Size    Description    (Table 0093)
  5292.  00h    4 BYTEs    name of the structure
  5293.  04h    DWORD    structure length
  5294.  08h 16 BYTEs    for future expansion
  5295. ---entry points (details???)---
  5296.  18h    DWORD    DeviceCheck
  5297.         11h compression (see also #0094)
  5298.         12h driver state
  5299.         13h get current pos
  5300.         14h sample rate
  5301.         15h set preference
  5302.         16h get DMA,IRQ
  5303.         17h get IO address
  5304.         18h get mem address
  5305.         19h get mem free
  5306.         1Ah full duplex
  5307.         1Bh get block size
  5308.         1Ch get PCM format
  5309.         1Dh enable PCM format
  5310.         80h-.. vendors can add DevChks above 0x80
  5311.  1Ch    DWORD    PCMInfo
  5312.  20h    DWORD    PlayBlock
  5313.  24h    DWORD    PlayCont
  5314.  28h    DWORD    RecordBlock
  5315.  2Ch    DWORD    RecordCont
  5316.  30h    DWORD    PauseIO
  5317.  34h    DWORD    ResumeIO
  5318.  38h    DWORD    StopIO
  5319.  3Ch    DWORD    WavePrepare
  5320.  40h    DWORD    WaveRegister
  5321.  44h    DWORD    GetLastError
  5322.         01h unsupported feature/function
  5323.         02h bad sample rate
  5324.         03h bad block length
  5325.         04h bad block address
  5326.         05h app. missed an IRQ
  5327.         06h don't understand the PCM size/format
  5328.         80h-.. vendors specific errors
  5329.  48h    DWORD    TimerTick
  5330.  4Ch    DWORD    ApplPSyncCB: CallBack: play filled in by the app
  5331.  50h    DWORD    ApplRSyncCB: CallBack: rec filled in by the app
  5332. SeeAlso: #0097,#0101
  5333.  
  5334. (Table 0094)
  5335. Values for type of compression:
  5336.  01h    IMA play
  5337.  02h    ALAW play
  5338.  03h    ULAW play
  5339.  11h    IMA record
  5340.  12h    ALAW record
  5341.  13h    ULAW record
  5342.  
  5343. Format of MIDI Info Structure:
  5344. Offset    Size    Description    (Table 0095)
  5345.  00h    4 BYTEs    name of the structure ("MIDI")
  5346.  04h    DWORD    structure length
  5347.  08h    DWORD    driver software version [00000003h]
  5348.  0Ch 32 BYTEs    vendor name, etc. (ASCIZ string)
  5349.  2Ch 32 BYTEs    vendor product name
  5350.  4Ch 32 BYTEs    vendor chip/hardware description
  5351.  6Ch    BYTE    installed board number
  5352.  6Dh    3 BYTEs    unused data
  5353.  70h 14 BYTEs    the patch library file name [OPL2.BNK 00..]
  5354.  7Eh    DWORD    feature bits (see #0096)
  5355.  80h    WORD    user determined preference field
  5356.  82h    WORD    memory required for driver use
  5357.  84h    WORD    # of timer tick callbacks per second
  5358.  86h    WORD    max # of tones (voices, partials)
  5359. SeeAlso: #0089,#0097,#0099
  5360.  
  5361. Bitfields for MIDI feature bits:
  5362. Bit(s)    Description    (Table 0096)
  5363.  0-3    reserved for GM extensions
  5364.  4    Transmitter/Receiver only
  5365.  5    Patches preloaded
  5366.  6    MIDI receive has time stamp
  5367.  8    MIDI interrupt driven input supported
  5368.  9    MIDI polled input supported
  5369.  10    MIDI remote patches supported
  5370.  
  5371. Format of MIDI Service structure:
  5372. Offset    Size    Description    (Table 0097)
  5373.  00h    4 BYTEs    name of the structure ("MIDS")
  5374.  04h    DWORD    structure length
  5375.  08h 16 WORDs    patches loaded table bit field
  5376.  28h 16 BYTEs    for future expansion
  5377. ---entry points (details???)---
  5378.  38h    DWORD    device check
  5379.         11h return available tones
  5380.         12h return TRUE/FALSE if patch is understood
  5381.         13h set preference
  5382.         14h allow/disallow voice stealing
  5383.         15h get FIFO sizes
  5384.         16h get DMA,IRQ
  5385.         17h get IO address
  5386.         18h get mem address
  5387.         19h get mem free
  5388.         80h-.. vendors can add DevChks above 0x80
  5389.  3Ch    DWORD    global reset
  5390.  40h    DWORD    MIDI msg
  5391.  44h    DWORD    poll MIDI
  5392.  48h    DWORD    preload patch
  5393.  4Ch    DWORD    unload patch
  5394.  50h    DWORD    timer tick
  5395.  54h    DWORD    get last error
  5396.         01h unsupported feature/function
  5397.         02h unknown patch type (see #0098)
  5398.         03h all tones are used
  5399.         04h messages are out of sync
  5400.         05h an incoming patch was incomplete
  5401.         06h an incoming patch couldn't be stored
  5402.         07h had to drop an incoming byte
  5403.         08h driver is failing a patch download
  5404.         80h-.. vendors specific errors
  5405.  58h    DWORD    Patch Block free callback
  5406.  5Ch    DWORD    MIDI byte avail. callback
  5407. SeeAlso: #0093,#0101
  5408.  
  5409. (Table 0098)
  5410. Values for MIDI Registered Patch Types:
  5411.  10h    OPL2
  5412.  11h    OPL3
  5413.  
  5414. Format of Volume Info Structure:
  5415. Offset    Size    Description    (Table 0099)
  5416.  00h  4    BYTEs    name of the structure ("VOLI")
  5417.  04h    DWORD    structure length (00000092h)
  5418.  08h    DWORD    driver software version [00000001h]
  5419.  0Ch 32 BYTEs    vendor name, etc. (ASCIZ string)
  5420.  2Ch 32 BYTEs    vendor product name
  5421.  4Ch 32 BYTEs    vendor chip/hardware description
  5422.  6Ch    BYTE    installed board number (0 for 1st/only board)
  5423.  6Dh  3    BYTEs    unused data (0)
  5424.  70h 24 BYTEs    text name of the mixer channel
  5425.  88h    DWORD    features bits (see #0100)
  5426.  8Ch    WORD    minimum volume setting
  5427.  8Eh    WORD    maximum volume setting
  5428.  90h    WORD    attenuation/gain crossover
  5429. SeeAlso: #0089,#0101
  5430.  
  5431. Bitfields for Volume feature bits:
  5432. Bit(s)    Description    (Table 0100)
  5433.  0    Stereo Volume control available
  5434.  2    Low Pass Filter is available
  5435.  3    High Pass Filter is available
  5436.  4    Parametric Tone Control is available
  5437.  5    selectable output paths
  5438.  8    Azimuth Field positioning supported
  5439.  9    Phi Field positioning supported
  5440.  10-30    unused???
  5441.  31    Master Volume device
  5442.  
  5443. Format of Volume Services Structure:
  5444. Offset    Size    Description    (Table 0101)
  5445.  00h    4 BYTEs    name of the structure ("VOLS")
  5446.  04h    DWORD    structure length (00000038h)
  5447.  08h 16 BYTEs    16 bytes for future expansion (0)
  5448. ---entry points (details???)---
  5449.  18h    DWORD    device check
  5450.         0011h filter range
  5451.         0012h filter setting
  5452.         0013h filter current
  5453.         0014h tone range
  5454.         0015h tone setting
  5455.         0016h tone current
  5456.         0017h path
  5457.         0018h get IO address
  5458.         0080h-.. vendors can add DevChks above 0x80
  5459.  1Ch    DWORD    set vol to an absolute setting
  5460.         01h User master volume setting
  5461.         02h application master volume setting
  5462.  20h    DWORD    set 3D volume
  5463.  24h    DWORD    tone control
  5464.  28h    DWORD    filter control
  5465.  2Ch    DWORD    output path
  5466.  30h    DWORD    reset channel
  5467.  34h    DWORD    get last error
  5468.         01h unsupported feature/function
  5469.         02h out of range parameter value
  5470.         80h+ vendor-specific errors
  5471. SeeAlso: #0093,#0097
  5472. --------s-104F13BX0003-----------------------
  5473. INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE
  5474.     AX = 4F13h
  5475.     BX = 0003h
  5476.     CX = handle
  5477.     DX = API set (16/32-bit)
  5478.     SI = segment ???
  5479. Return: AL = 4Fh if function supported
  5480.     AH = status
  5481.         00h successful
  5482.         SI:CX -> memory ???
  5483.         01h failed
  5484. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004h
  5485. --------s-104F13BX0004-----------------------
  5486. INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE
  5487.     AX = 4F13h
  5488.     BX = 0004h
  5489.     CX = handle
  5490. Return: AL = 4Fh if function supported
  5491.     AH = status
  5492.         00h successful
  5493.         01h failed
  5494. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005h
  5495. --------s-104F13BX0005-----------------------
  5496. INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER
  5497.     AX = 4F13h
  5498.     BX = 0005h
  5499. Return: AL = 4Fh if function supported
  5500.     AH = status
  5501.         00h successful
  5502.         01h failed
  5503. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006h
  5504. --------s-104F13BX0006-----------------------
  5505. INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN
  5506.     AX = 4F13h
  5507.     BX = 0006h
  5508. Return: AL = 4Fh if function supported
  5509.     AH = status
  5510.         00h successful
  5511.         01h failed
  5512. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005h
  5513. ----------104F14-----------------------------
  5514. INT 10 - VESA OEM Extensions - API
  5515.     AX = 4F14h
  5516.     BL = function
  5517.         00h installation check / get capabilities
  5518.     other registers vary by function
  5519. Return: varies by function
  5520. Note:    this function is provided for OEMs to implement system-specific
  5521.       functionality in a VESA-compatible manner
  5522. ----------104F14-----------------------------
  5523. INT 10 - VESA OEM Extensions - Matrox Millenium (BIOS v2.1)
  5524.     AX = 4F14h
  5525.     BL = function
  5526.         00h installation check / get capabilities
  5527.         ES:DI -> 256-byte buffer for Matrox-specific information
  5528.             (see #0102)
  5529.         Return: ES:DI buffer filled
  5530.         01h ???
  5531.         BH = ???
  5532.         02h ???
  5533.         BH = ??? (bit flags?)
  5534.         03h ???
  5535.         SI = index of ???
  5536.         Return: CL = value of ???
  5537.         04h ???
  5538.         DX = ???
  5539.         Return: CL,EDX destroyed
  5540.         else
  5541.         Return: AX = FFFFh
  5542. Return: AL = 4Fh if function supported
  5543.         AH = status
  5544.         00h successful
  5545.         01h failed
  5546. Note:    this function is provided for OEMs to implement system-specific
  5547.       functionality in a VESA-compatible manner
  5548.  
  5549. Format of Matrox-specific VESA extensions information:
  5550. Offset    Size    Description    (Table 0102)
  5551.  00h  7 BYTEs    signature "VBE/MGA"
  5552.  07h 12 BYTEs    ??? (01h 01h 00h 00h 00h 00h 00h 00h 00h 07h 01h 02h)
  5553.  13h    DWORD    ->
  5554.  17h    DWORD    ->
  5555.  1Bh    DWORD    ->
  5556.  1Fh    DWORD    ->
  5557.  23h    DWORD    ->
  5558.  27h    DWORD    ->
  5559.  2Bh    WORD    ???
  5560.  2Dh    DWORD    ???
  5561.  31h    DWORD    ???
  5562.  35h    WORD    ???
  5563.  37h 201 BYTEs    unused??? (cleared to 00h)
  5564. --------V-104F15BL00-------------------------
  5565. INT 10 - VESA VBE/DC (Display Data Channel) - INSTALLATION CHECK / CAPABILITIES
  5566.     AX = 4F15h
  5567.     BL = 00h
  5568.     ???
  5569. Return: AL = 4Fh if function supported
  5570.         AH = status
  5571.         00h successful
  5572.             ???
  5573.         01h failed
  5574.             ???
  5575. SeeAlso: AX=4F15h/BL=01h,AX=4F15h/BL=02h
  5576. --------V-104F15BL01-------------------------
  5577. INT 10 - VESA VBE/DC (Display Data Channel) - READ EDID
  5578.     AX = 4F15h
  5579.     BL = 01h
  5580.     ES:DI -> 128-byte buffer for EDID record (see #0103)
  5581.     ???
  5582. Return: AL = 4Fh if function supported
  5583.         AH = status
  5584.         00h successful
  5585.             ES:DI buffer filled
  5586.         01h failed
  5587. SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=02h
  5588.  
  5589. Format of VESA EDid record:
  5590. Offset    Size    Description    (Table 0103)
  5591.  00h  8 BYTEs    padding (all FFh)
  5592.  08h    WORD    manufacturer ID
  5593.         bits 6-2: first letter
  5594.         bits 11-7: second letter
  5595.         bits 15-12: third letter
  5596.  0Ah    WORD    ID code
  5597.  0Ch    DWORD    serial number or FFFFFFFFh
  5598.  10h    BYTE    week number of manufacture
  5599.  11h    BYTE    manufacture year - 1990
  5600.  12h    BYTE    EDID version
  5601.  13h    BYTE    EDID revision
  5602.  14h    BYTE    video input
  5603.  15h    BYTE    maximum horizontal size in cm
  5604.  16h    BYTE    maximum vertical size in cm
  5605.  17h    BYTE    gamma factor
  5606.  18h    BYTE    DPMS flags
  5607.     ???
  5608. --------V-104F15BL02-------------------------
  5609. INT 10 - VESA VBE/DC (Display Data Channel) - READ VDIF
  5610.     AX = 4F15h
  5611.     BL = 02h
  5612.     ???
  5613. Return: AL = 4Fh if function supported
  5614.         AH = status
  5615.         00h successful
  5616.             ???
  5617.         01h failed
  5618. SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=01h
  5619. --------V-104F16-----------------------------
  5620. INT 10 - VESA VBE/GC (Graphics System Configuration) - API
  5621.     AX = 4F16h
  5622.     BL = function
  5623.         00h installation check / get capabilities
  5624.     other registers vary by function
  5625. Return: varies by function
  5626. --------V-104F17-----------------------------
  5627. INT 10 - VESA VBE/AF (Accelerator Functions) - API
  5628.     AX = 4F17h
  5629.     BL = function
  5630.         00h installation check / get capabilities
  5631.     other registers vary by function
  5632. Return: varies by function
  5633. --------V-104F4D-----------------------------
  5634. INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
  5635.     AX = 4F4Dh
  5636.     BX = number of bytes available for VCI use
  5637.     DS:0000h -> buffer for VCI
  5638.     ES:DI -> VCI driver callback function
  5639. Return: AL = 4Fh if supported
  5640.         AH = status
  5641.         00h successful
  5642.             BX = number of bytes used by VCI
  5643.             ES:DI -> VCI request handler
  5644.         01h failed
  5645. Desc:    allow the VESA BIOS Extensions to cooperate with a pointing-device
  5646.       (typically mouse) driver
  5647. SeeAlso: AX=4F12h
  5648. --------V-104F70-----------------------------
  5649. INT 10 - Avance Logic - GET ADAPTER INFORMATION
  5650.     AX = 4F70h
  5651. Return:    AX = 004Fh if successful
  5652.         BL = board information (see #0104)
  5653.         BH = board type???
  5654.         00h on ALG2101
  5655.         FFh otherwise
  5656. SeeAlso: AX=4F00h
  5657.  
  5658. Bitfields for Avance Logic board information:
  5659. Bit(s)    Description    (Table 0104)
  5660.  0-1    video RAM size
  5661.     00 256K
  5662.     01 512K
  5663.     10 1M
  5664.     11 2M
  5665.  2    ???
  5666.  3    slot size???
  5667.     =0 8-bit slot
  5668.     =1 16-bit slot
  5669.  4    unused
  5670.  5    set on ALG2228/AL2301
  5671.  6-7    unused
  5672. --------V-104FDD-----------------------------
  5673. INT 10 - ATI M64VBE.COM - GET RESIDENT SEGMENT
  5674.     AX = 4FDDh
  5675. Return: AX = CS of resident code
  5676. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  5677. SeeAlso: AX=4FFFh/BX=364Dh"M64VBE",INT 60"M64VBE"
  5678. --------V-104FFF-----------------------------
  5679. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  5680.     AX = 4FFFh
  5681.     DL = new state (00h off, 01h on)
  5682. Return: AX = 0000h if successful
  5683. --------V-104FFF-----------------------------
  5684. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  5685.     AX = 4FFFh
  5686.     BX = dual display mode
  5687.         00h reset
  5688.         01h set dual display, 32KB VGA test
  5689.         02h set dual display, 64KB VGA test
  5690. Return: AX = 4F00h if successful
  5691.         BX = number of scanlines off screen for test mode
  5692. --------V-104FFFBX364D-----------------------
  5693. INT 10 - ATI M64VBE.COM - UNINSTALL
  5694.     AX = 4FFFh
  5695.     BX = 364Dh ('6M')
  5696.     CX = 5634h ('V4')
  5697. Return: AX,DX,DS,ES destroyed
  5698. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  5699. SeeAlso: AX=4FDDh"M64VBE",INT 60"M64VBE"
  5700. --------U-1050-------------------------------
  5701. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  5702.     AH = 50h
  5703. Return: BX = 1954h if installed
  5704.         AL = 00h if inactive, nonzero if active
  5705. Program: SCROLOCK is a utility supplied with System Enhancement Associates'
  5706.       ARC archiver
  5707. SeeAlso: AH=51h
  5708. --------J-105000-----------------------------
  5709. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  5710.     AX = 5000h
  5711.     BX = country code
  5712.         0001h USA (English), 0051h Japan
  5713. Return: AL = status
  5714.         00h successful
  5715.         01h bad country code
  5716.         02h other error
  5717. SeeAlso: AX=5001h,INT 16/AX=5000h
  5718. --------J-105001-----------------------------
  5719. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  5720.     AX = 5001h
  5721. Return: AL = status
  5722.         00h successful
  5723.         BX = country code
  5724.         02h error
  5725. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  5726. --------V-105049-----------------------------
  5727. INT 10 - VIDEO - SCREENR v1.55+ - API
  5728.     AX = 5049h ('PI')
  5729.     BX = function
  5730.         0000h installation check
  5731.         0001h lock mode
  5732.         0002h unlock mode
  5733.         0003h lock palette
  5734.         0004h unlock palette
  5735. Return: AX = 0000h if installed
  5736.         BX = TSR version (BH=major,BL=minor)
  5737.         CL = mode locking status
  5738.         00h mode not locked
  5739.         01h mode locked: INT 10/AH=00h disabled
  5740.         CH = palette locking status
  5741.         00h palette not locked
  5742.         01h palette locked, the following functions are disabled:
  5743.             AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  5744. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  5745.       utility.
  5746. Index:    installation check;SCREENR
  5747. --------U-1051-------------------------------
  5748. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  5749.     AH = 51h
  5750.     AL = state
  5751.         00h disable
  5752.         nonzero enable
  5753. Return: nothing
  5754. Program: SCROLOCK is a utility supplied with System Enhancement Associates'
  5755.       ARC file archiver
  5756. SeeAlso: AH=50h"SCROLOCK"
  5757. --------J-105100-----------------------------
  5758. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  5759.     AX = 5100h
  5760.     BH = character width in bits (10h)
  5761.     BL = character height (10h)
  5762.     DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  5763.     ES:BP -> character bitmap
  5764. Return: AL = status (00h successful, 01h failed)
  5765. SeeAlso: AX=5101h,INT 1F"SYSTEM DATA"
  5766. --------J-105101-----------------------------
  5767. INT 10 - VIDEO - AX PC - READ CHARACTER
  5768.     AX = 5101h
  5769.     BH = character width in bits
  5770.     BL = character height
  5771.     DX = character code (DH = 00h if 8-bit character)
  5772.     ES:BP -> buffer for character bitmap
  5773. Return: AL = status (00h successful, 01h failed)
  5774. SeeAlso: AH=09h,AX=5100h
  5775. --------J-105200-----------------------------
  5776. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  5777.     AX = 5200h
  5778.     BX = segment of buffer
  5779. Return: nothing
  5780. SeeAlso: AX=5201h
  5781. --------J-105201-----------------------------
  5782. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  5783.     AX = 5201h
  5784. Return: BX = segment of buffer or 0000h if failed
  5785. SeeAlso: AX=8300h,AH=FEh
  5786. ----------1053-------------------------------
  5787. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  5788.     AH = 53h
  5789.     DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  5790.         .PR2)
  5791. Return: ???
  5792. SeeAlso: AH=55h
  5793. ----------1055-------------------------------
  5794. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  5795.     AH = 55h
  5796. Return: FXSHOW.EXE removed from memory
  5797. SeeAlso: AH=53h
  5798. --------V-105555-----------------------------
  5799. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  5800.     AX = 5555h
  5801. Return: AX = AAAAh    if installed
  5802.     BX:CX -> ??? routine in SMS.COM resident portion
  5803.           -> data area (see #0105) in VCONFIG
  5804. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  5805.       ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  5806. SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
  5807. Index:    screen saver;ATI Wonder SMS.COM
  5808.  
  5809. Format of ATI Super Switch data area:
  5810. Offset    Size    Description    (Table 0105)
  5811.  00h    DWORD    original INT 09 vector
  5812.  04h    DWORD    original INT 10 vector
  5813.  08h    DWORD    original INT 1C vector
  5814.  0Ch    WORD    screen saver state, 0=off, 1=on
  5815.  0Eh    WORD    blanking interval in clock ticks
  5816. --------V-105F00-----------------------------
  5817. INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION
  5818.     AX = 5F00h
  5819. Return: AL = 5Fh function supported
  5820.         BL = chip type (see #0106)
  5821.         BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
  5822.         CX = miscellaneous information (see #0107)
  5823. SeeAlso: AX=5F01h
  5824.  
  5825. Bitfields for Chips&Technologies chip type:
  5826. Bit(s)    Description    (Table 0106)
  5827.  7-4    chip type
  5828.     0000: 82c451
  5829.     0001: 82c452
  5830.     0010: 82c455
  5831.     0011: 82c453
  5832.     0101: 82c456
  5833.     0110: 82c457
  5834.     0111: F65520
  5835.     1000: F65530
  5836.     1100: F65535/F65545 ???
  5837.     1101: F65540
  5838.  3-0    revision number
  5839.  
  5840. Bitfields for Chips&Technologies miscellaneous information:
  5841. Bit(s)    Description    (Table 0107)
  5842.  0    DAC size (0=6-bit, 1=8-bit)
  5843.  1    system type (0=PC/AT, 1=PS/2)
  5844.  2    extended text modes supported by BIOS
  5845.  3    reserved
  5846.  4    extended graphics modes supported by BIOS
  5847.  5    reserved
  5848.  6    BIOS supports graphics cursor
  5849.  7    BIOS supports anti-aliased font
  5850.  8    BIOS supports pre-programmed emulation
  5851.  9    BIOS supports auto emulation
  5852.  10    BIOS supports variable mode set at cold boot
  5853.  11    BIOS supports variable mode set on warm boot
  5854.  12    BIOS supports emulation mode set at cold boot
  5855.  13    BIOS supports emulation mode set on warm boot
  5856.  14-15    reserved
  5857. --------V-105F00-----------------------------
  5858. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  5859.     AX = 5F00h
  5860. Return: AH = 00h, if successful
  5861.     AL = chip version (the same value that VTEST.EXE reads)
  5862.         00h RTG3103???
  5863.         01h RTG31030/RTG3105
  5864.         02h RTG3106???
  5865.         3Fh non-Realtek chip
  5866. BUG:    in v3.C10, AX=5F00h on return due to improper stack restoration code
  5867. SeeAlso: AX=5F01h"RTVGA"
  5868. --------V-105F01-----------------------------
  5869. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  5870.     AX = 5F01h
  5871.     BL = emulation type (see #0108)
  5872. Return: AL = 5Fh if function supported
  5873.         AH = status
  5874.         00h unsuccessful
  5875.         01h successful
  5876. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  5877.  
  5878. (Table 0108)
  5879. Values for Chips&Technologies emulation type:
  5880.  00h,01h reserved
  5881.  02h    CGA
  5882.  03h    MDA
  5883.  04h    Hercules
  5884.  05h    EGA
  5885.  06h    VGA
  5886. --------V-105F01-----------------------------
  5887. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  5888.     AX = 5F01h
  5889.     ES:DI -> zero-filled buffer for BIOS ID string
  5890. Return: AH = 00h if successful
  5891.     ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  5892. BUG:    in v3.C10, AX=5F01h on return due to improper stack restoration code
  5893. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  5894. --------V-105F02-----------------------------
  5895. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  5896.     AX = 5F02h
  5897.     BL = new state of autmatic emulation (00h enabled, 01h disabled)
  5898. Return: AL = 5Fh if function supported
  5899.         AH = status
  5900.         00h unsuccessful
  5901.         01h successful
  5902. SeeAlso: AX=5F01h,AX=5F03h
  5903. --------V-105F02-----------------------------
  5904. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  5905.     AX = 5F02h
  5906. Return: AH = 00h, if successful
  5907.     AL = on-board memory size
  5908.          (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  5909. BUG:    in v3.C10, AX=5F02h on return due to improper stack restoration code
  5910. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  5911. --------V-105F03-----------------------------
  5912. INT 10 - VIDEO - Realtek RTVGA - SET ???
  5913.     AX = 5F03h
  5914.     BL = 0-3 (???)
  5915. Return: AH = 00h if successful
  5916. BUG:    in v3.C10, AX=5F03h on return due to improper stack restoration code
  5917. SeeAlso: AX=5F02h"RTVGA"
  5918. --------V-105F03BL00-------------------------
  5919. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON DISPLAY MODE
  5920.     AX = 5F03h
  5921.     BL = 00h
  5922.     CL = display mode
  5923.     CH = mode (see #0109)
  5924. Return: AL = 5Fh if function supported
  5925.         AH = status
  5926.         00h unsuccessful
  5927.         01h successful
  5928. SeeAlso: AX=5F02h,AX=5F03h/BL=01h"Chips",AX=5F90h
  5929.  
  5930. Bitfields for Chips&Technologies display mode:
  5931. Bit(s)    Description    (Table 0109)
  5932.  1-0    scanlines (00 = 200, 01 = 350, 10 = 400)
  5933.  7    persistence (0 reset on next boot, 1 until changed)
  5934. --------V-105F03BL01-------------------------
  5935. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  5936.     AX = 5F03h
  5937.     BL = 01h
  5938.     CL = emulation mode (see #0109)
  5939.     CH = permanence
  5940.         bit 7 persistence (0 reset on next boot, 1 until changed)
  5941. Return: AL = 5Fh if function supported
  5942.         AH = status
  5943.         00h unsuccessful
  5944.         01h successful
  5945. SeeAlso: AX=5F02h,AX=5F03h/BL=00h"Chips",AX=5F90h
  5946. --------V-105F10-----------------------------
  5947. INT 10 - Chips & Technologies Extended BIOS - ???
  5948.     AX = 5F10h
  5949.     DX = ???
  5950. Return: DX = ???
  5951. --------V-105F50-----------------------------
  5952. INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS
  5953.     AX = 5F50h
  5954. Return: DL = display status (see #0110)
  5955. Note:    this call can be used on Toshiba laptops since ~1995 instead of
  5956.       INT 42/AX=7503h which is no longer supported with the F655xx chips
  5957. SeeAlso: INT 42/AX=7503h
  5958.  
  5959. Bitfields for display status:
  5960. Bit(s)    Description    (Table 0110)
  5961.  7-4    always 0 ???
  5962.  3    1: both displays active (bit 1 also set)
  5963.  2    1: normal (monochrome display only), 0: inverse or color
  5964.  1    1: internal display active, 0: external only
  5965.  0    always set ???
  5966. --------V-105F51-----------------------------
  5967. INT 10 - Chips & Technologies Extended BIOS - SET DISPLAY STATUS ???
  5968.     AX = 5F51h
  5969.     BX = ???
  5970. Return: nothing
  5971. --------V-105F5EBL00-------------------------
  5972. INT 10 - Chips & Technologies Extended BIOS - SET ???
  5973.     AX = 5F5Eh
  5974.     BL = 00h or 01h
  5975. Return: nothing
  5976. --------V-105F90-----------------------------
  5977. INT 10 - Chips & Technologies Extended BIOS - GET SUPERVGA STATE BUFFER SIZE
  5978.     AX = 5F90h
  5979.     CX = state mask (see #0111)
  5980. Return: AL = 5Fh if function supported
  5981.         BX = number of 64-byte blocks required
  5982. SeeAlso: AH=1Ch,AX=5F03h,AX=5F91h,AX=5F92h
  5983.  
  5984. Bitfields for Chips&Technologies state mask:
  5985. Bit(s)    Description    (Table 0111)
  5986.  0    video hardware
  5987.  1    BIOS data state
  5988.  2    DAC state
  5989.  15    type (0 all state info, 1 SuperVGA state only)
  5990. --------V-105F91-----------------------------
  5991. INT 10 - Chips & Technologies Extended BIOS - SAVE SUPERVGA STATE
  5992.     AX = 5F91h
  5993.     CX = state mask (see #0111)
  5994.     ES:BX -> save buffer
  5995. Return: AL = 5Fh if function supported
  5996.         buffer at ES:BX filled
  5997. SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h
  5998. --------V-105F92-----------------------------
  5999. INT 10 - Chips & Technologies Extended BIOS - RESTORE SUPERVGA STATE
  6000.     AX = 5F92h
  6001.     CX = state mask (see #0111)
  6002.     ES:BX -> previously-filled save buffer
  6003. Return: AL = 5Fh if function supported
  6004. SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h
  6005. --------V-1060------------------------------------
  6006. INT 10 - HUNTER 16 - SET GRAPHICS FONT
  6007.     AH = 60h
  6008.     AL = new font
  6009.         bit 7    output characters in reverse video
  6010.         bits 0-6 font number (see #0125 at AH=77h)
  6011. Return: BH = cell width
  6012.     BL = cell height
  6013. Desc:    select the font to use for output in mode 6; this can be used to mix
  6014.       fonts on the screen
  6015. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  6016.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  6017. SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
  6018. --------V-1061------------------------------------
  6019. INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
  6020.     AH = 61h
  6021.     CX = column
  6022.     DX = row
  6023. Return: nothing
  6024. Note:    this function is only valid in graphics modes
  6025. SeeAlso: AH=62h
  6026. --------V-1062------------------------------------
  6027. INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
  6028.     AH = 62h
  6029. Return: CX = column
  6030.     DX = row
  6031. Note:    this function is only valid in graphics modes
  6032. SeeAlso: AH=61h
  6033. --------V-1063------------------------------------
  6034. INT 10 - HUNTER 16 - SET CONTRAST
  6035.     AH = 63h
  6036.     AL = contrast (0..127)
  6037. Return: nothing
  6038. Desc:    set the LCD screen contrast to improve visibility
  6039. SeeAlso: AH=64h,AH=75h
  6040. --------V-1064------------------------------------
  6041. INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
  6042.     AH = 64h
  6043.     AL = level (0..15)
  6044. Return: nothing
  6045. Desc:    set the LCD backlight level to improve visibility in bad lighting
  6046. SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
  6047. --------V-106500----------------------------------
  6048. INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
  6049.     AX = 6500h
  6050. Return: BX = timeout in seconds (0-300)
  6051. Desc:    returns the time after which the backlight will turn off
  6052. SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
  6053. --------V-106501----------------------------------
  6054. INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
  6055.     AX = 6501h
  6056.     BX = timeout in seconds (0-300)
  6057. Return: nothing
  6058. Desc:    set the idle time after which the backlight will turn off
  6059. SeeAlso: AH=64h,AX=6500h
  6060. --------V-1066------------------------------------
  6061. INT 10 - HUNTER 16 - SPLIT DISPLAY
  6062.     AH = 66h
  6063.     AL = control bits (see #0112)
  6064.     BH = top row of lower section of LCD (0..7)
  6065.     BL = top row of lower section of the virtual screen (0..24)
  6066. Return: nothing
  6067. Desc:    split the LCD screen horizontally into two parts; each part may be
  6068.       individually scrollable or fixed.
  6069. Note:    the Hunter 16 has a 240x64 LCD display which serves as a window into
  6070.       a 640x200 virtual screen
  6071.  
  6072. Bitfields for HUNTER 16 control bits:
  6073. Bit(s)    Description    (Table 0112)
  6074.  0-1    01: no split, 10: allow split
  6075.  2    allow scrolling the upper part
  6076.  3    allow scrolling the lower part
  6077. --------V-106A00BX0000-----------------------
  6078. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  6079.     AX = 6A00h
  6080.     BX = 0000h
  6081.     CX = 0000h
  6082.     DX = buffer length (may be 0)
  6083.     ES:DI -> buffer
  6084. Return: BX = number of bytes stored in buffer
  6085.     CX = bytes required for all descriptions (0 if no DGIS)
  6086. Note:    buffer contains descriptions and addresses of DGIS-compatible
  6087.       display(s) and printer(s)
  6088. SeeAlso: AX=6A02h
  6089. --------V-106A01CX0000-----------------------
  6090. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  6091.     AX = 6A01h
  6092.     CX = 0000h
  6093.     ES:DI = address of device to send INT 10 output to
  6094. Return: CX = 0000h  output could not be redirected
  6095.          else INT 10h output now routed to requested display
  6096. SeeAlso: AX=6A02h
  6097. --------V-106A02-----------------------------
  6098. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  6099.     AX = 6A02h
  6100.     ES:DI = 0000h:0000h
  6101. Return: ES:DI = 0000h:0000h  if current display is non-DGIS
  6102.         else address of the current DGIS INT 10 display
  6103. SeeAlso: AX=6A00h,AX=6A01h
  6104. --------V-106D74-----------------------------
  6105. INT 10 - MTRFONTS - INSTALLATION CHECK
  6106.     AX = 6D74h ('mt')
  6107.     DS:0104h = signature "MtRfOnTs"
  6108. Return: AX = 4D54h ('MT') if installed
  6109.         ES = PSP segment of resident code
  6110. Program: MTRFONTS is a shareware TSR (part of the MTR package) by Mechon Mamre
  6111.       which provides Hebrew screen fonts
  6112. SeeAlso: INT 16/AX=6D74h"MTRTSR"
  6113. --------V-106E00-----------------------------
  6114. INT 10 - Paradise VGA internal - GET ???
  6115.     AX = 6E00h
  6116. Return: BX = 5744h ('WD') if supported
  6117.         DH:AH:AL = last three ASCII digits of ROM serial number
  6118.         CL = ???
  6119.         CH = ???
  6120. SeeAlso: AX=6E04h,AX=6E05h
  6121. --------V-106E04-----------------------------
  6122. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  6123.     AX = 6E04h
  6124. Return: BX = screen width (columns)
  6125.     CX = screen height (lines)
  6126.     AH = ??? (05h or FFh)
  6127.     AL = ??? (04h or video mode)
  6128. SeeAlso: AX=6E00h,AX=6E05h
  6129. --------V-106E05-----------------------------
  6130. INT 10 - Paradise VGA internal - SET MODE
  6131.     AX = 6E05h
  6132.     BL = mode
  6133. Return: nothing
  6134. Note:    like AH=00h, AL=BL.
  6135. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  6136. --------V-106F00-----------------------------
  6137. INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
  6138.     AX = 6F00h
  6139.     BX <> 4850h (usually set to 0000h for simplicity)
  6140. Return: BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  6141.     AX destroyed
  6142. SeeAlso: AX=6F00h"Video7",AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  6143. SeeAlso: INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
  6144. --------V-106F00BX0000-----------------------
  6145. INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
  6146.     AX = 6F00h
  6147.     BX = 0000h
  6148. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  6149. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  6150. --------V-106F01-----------------------------
  6151. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO
  6152.     AX = 6F01h
  6153. Return: AL = monitor type code (HP,VEGA VGA only) (see #0113)
  6154.     AH = status register information (see #0114)
  6155.     CL = current value of Extended Control register (HP Ext BIOS, and only
  6156.         if AL=41h) (see #0115)
  6157. Notes:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  6158.     supported by original HP Vectra AT and by ES/QS/RS series Vectras
  6159.  
  6160. (Table 0113)
  6161. Values for monitor type code (HP Extended BIOS):
  6162.  00h    non-HP card with ROM and possibly its own INT 10h driver
  6163.  41h    MultiMode video display adapter
  6164.  42h-44h reserved
  6165.  45h    industry standard monochrome display adapter
  6166.  46h    industry standard color display adapter
  6167.  51h    reserved
  6168.  
  6169. Bitfields for status register information:
  6170. Bit(s)    Description    (Table 0114)
  6171.  0    display enable
  6172.     0 = display enabled
  6173.     1 = vertical or horizontal retrace in progress
  6174.  1    light pen flip flop set
  6175.  2    light pen switch activated
  6176.  3    vertical sync
  6177.  4    monitor resolution
  6178.     0 = high resolution (>200 lines)
  6179.     1 = low resolution (<=200 lines)
  6180.  5    display type (0 = color, 1 = monochrome)
  6181.  6,7    diagnostic bits
  6182. Note:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  6183. --------V-106F02-----------------------------
  6184. INT 10 - HP Vectra EX-BIOS - SET MONITOR INFO
  6185.     AX = 6F02h
  6186.     BL = new value for extended control register (see #0115)
  6187. Return: AX,BL destroyed
  6188. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  6189.       is installed
  6190.     the Extended Control register is at I/O address 3DDh
  6191. SeeAlso: AX=6F01h,AX=6F03h
  6192.  
  6193. Bitfields for HP Vectra extended control register:
  6194. Bit(s)    Description    (Table 0115)
  6195.  0    screen resolution (0 = 200 lines, 1 = 400 lines)
  6196.  1    underline enable (if set, 'blue' of fg color = underline)
  6197.  2    font (0 = Standard-8, 1 = HP-Roman-8)
  6198.  3    memory disabled for CPU access
  6199.  4    allow access to full 32K memory instead of wrapping at 16K
  6200.  5    select second 16K page instead of first
  6201.  6,7    unused
  6202. --------V-106F03-----------------------------
  6203. INT 10 - HP Vectra EX-BIOS - MODIFY MONITOR INFO
  6204.     AX = 6F03h
  6205.     BH = exclude mask (set bits are not modified)
  6206.     BL = new values for bits indicated by BH (see #0115)
  6207. Return: AX destroyed
  6208. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  6209.       is installed
  6210.     supported by original HP Vectra AT and by ES/QS/RS series Vectras
  6211. SeeAlso: AX=6F01h,AX=6F02h
  6212. --------V-106F04-----------------------------
  6213. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  6214.     AX = 6F04h
  6215. Return: AL = current video mode (see #0116)
  6216.     BX = horizontal columns (text) or pixels (graphics)
  6217.     CX = vertical columns (text) or pixels (graphics)
  6218. SeeAlso: AX=6F05h
  6219. --------V-106F05-----------------------------
  6220. INT 10 - VIDEO - Video7 VGA,VEGA EXTENDED EGA/VGA,HP Vectra - SET VIDEO MODE
  6221.     AX = 6F05h
  6222.     BL = mode (see #0116)
  6223. Return: AX,BL destroyed
  6224. Notes:    also supported by the HP Vectra Extended BIOS on the original
  6225.       HP Vectra AT and by ES/QS/RS series Vectras
  6226.     on the HP Vectra, this function rather than AH=00h must be used to
  6227.       return to an IBM-standard mode after setting an HP-specified mode
  6228.       from 08h to 0Fh.
  6229. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  6230.  
  6231. (Table 0116)
  6232. Values for Video7/VEGA video mode:
  6233.      text/ text pixel    pixel    colors disply scrn  system
  6234.      grph resol     box  resolution       pages  addr
  6235.  00h-13h = standard IBM modes (see #0009 at AH=00h)
  6236.  08h = T  80x27      .      .    mono      .    .  HP MultiMode Video
  6237.  09h = T  80x27      .      .      .      .    .  HP MultiMode Video
  6238.  0Ah = T  40x27      .      .    mono      .    .  HP MultiMode Video
  6239.  0Bh = T  40x27      .      .      .      .    .  HP MultiMode Video
  6240.  0Ch = reserved                       HP MultiMode Video
  6241.  0Dh = G    .      .    640x400      .      .    .  HP MultiMode Video
  6242.  0Eh = G    .      .    320x400      .      .    .  HP MultiMode Video
  6243.  0Fh = G    .      .    320x400      .      .    .  HP MultiMode Video
  6244.  40h = T  80x43     8x8      .      .      .    .  Video7/VEGA VGA
  6245.  41h = T 132x25     8x14      .      .      .    .  Video7/VEGA VGA
  6246.  42h = T 132x43     8x8      .      .      .    .  Video7/VEGA VGA
  6247.  43h = T  80x60     8x8      .      .      .    .  Video7/VEGA VGA
  6248.  44h = T 100x60     8x8      .      .      .    .  Video7/VEGA VGA
  6249.  45h = T 132x28     8x8      .      .      .    .  Video7/VEGA VGA
  6250.  60h = G    .      .    752x410     16      .    .  Video7 VGA, VEGA VGA
  6251.  61h = G    .      .    720x540     16      .    .  Video7 VGA, VEGA VGA
  6252.      = G    .      .    720x540     16      .    .  Northgate, Headland 1024i
  6253.  62h = G    .      .    800x600     16      .    .  Video7 VGA, VEGA Ext EGA
  6254.      = G    .      .    800x600     16      .    .  Headland 1024i
  6255.  63h = G    .      .   1024x768      2      .    .  Video7 VGA
  6256.  64h = G    .      .   1024x768      4      .    .  Video7 VGA
  6257.  65h = G    .      .   1024x768     16      .    .  Video7 VGA, VEGA Ext EGA
  6258.      = G    .      .   1024x768     16      .    .  Headland 1024i
  6259.  66h = G    .      .    640x400    256      .    .  Video7 VGA, VEGA Ext VGA
  6260.      = G    .      .    640x400    256      .    .  Northgate, Headland 1024i
  6261.  67h = G    .      .    640x480    256      .    .  Video7 VGA, VEGA Ext VGA
  6262.      = G    .      .    640x480    256      .    .  Headland 1024i
  6263.  68h = G    .      .    720x540    256      .    .  Video7 VGA, VEGA Ext VGA
  6264.      = G    .      .    720x540    256      .    .  Headland 1024i
  6265.  69h = G    .      .    800x600    256      .    .  Video7 VGA, VEGA Ext VGA
  6266.      = G    .      .    800x600    256      .    .  Headland 1024i
  6267.  70h = G    .      .    752x410     16gray      .    .  Video7 VGA, VEGA VGA
  6268.  71h = G    .      .    720x540     16gray      .    .  Video7 VGA, VEGA VGA
  6269.  72h = G    .      .    800x600     16gray      .    .  Video7 VGA
  6270.  73h = G    .      .   1024x768      2gray      .    .  Video7 VGA
  6271.  74h = G    .      .   1024x768      4gray      .    .  Video7 VGA
  6272.  75h = G    .      .   1024x768     16gray      .    .  Video7 VGA
  6273.  76h = G    .      .    640x400    256gray      .    .  Video7 VGA
  6274.  77h = G    .      .    640x480    256gray      .    .  Video7 VGA
  6275.  78h = G    .      .    720x540    256gray      .    .  Video7 VGA
  6276.  79h = G    .      .    800x600    256gray      .    .  (future)
  6277. SeeAlso: AH=00h,#0009,AX=0070h,#0010,AX=007Eh,AX=6F04h,#0081
  6278. Index:    video modes;Video 7|video modes;VEGA|video modes;Headland
  6279. --------V-106F06-----------------------------
  6280. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  6281.     AX = 6F06h
  6282.     BL = Autoswitch mode select
  6283.          00h select EGA/VGA-only modes
  6284.          01h select Autoswitched VGA/EGA/CGA/MGA modes
  6285.          02h select 'bootup' CGA/MGA modes
  6286.     BH = enable/disable (00h enable, 01h = disable selection)
  6287. Return: nothing
  6288. --------V-106F07-----------------------------
  6289. INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  6290.     AX = 6F07h
  6291. Return: AL = 6Fh
  6292.     AH = memory configuration
  6293.         bits 0-6 = number of 256K blocks of video memory
  6294.         bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
  6295.     BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  6296.     BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  6297.     CX = 0000h
  6298. SeeAlso: AH=12h/BL=10h
  6299. --------V-1070-------------------------------
  6300. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  6301.     AH = 70h
  6302. Return: AX:BX -> WORD containing green plane's offset
  6303.     AX:CX -> WORD containing green plane's segment
  6304.     AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  6305.             4000) planes
  6306. SeeAlso: AH=71h
  6307. --------V-1070------------------------------------
  6308. INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
  6309.     AH = 70h
  6310.     DS:BX -> control block (see #0117)
  6311. Return: nothing
  6312. Desc:    Draws a circle or ellipse. Only valid in graphics modes.
  6313. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  6314.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  6315. SeeAlso: AH=71h"HUNTER"
  6316.  
  6317. Format of HUNTER 16 control block:
  6318. Offset    Size    Description    (Table 0117)
  6319.  00h    WORD    center X co-ordinate
  6320.  02h    BYTE    center Y co-ordinate
  6321.  03h    WORD    radius in pixels
  6322.  05h    BYTE    color (00h white, 01h black, FFh invert)
  6323.  06h    BYTE    aspect ratio x:x (1-127)
  6324.  07h    BYTE    aspect ratio y:y (1-127)
  6325. --------V-107000BX0000-----------------------
  6326. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  6327.     AX = 7000h
  6328.     BX = 0000h
  6329. Return: AL = 70h if Trident-based Everex card
  6330.     CL = monitor type (see #0118)
  6331.     CH = feature bits (see #0119)
  6332.     DX = video board info
  6333.         bits 4-15: board ID model (see #0120)
  6334.         bits 0-3:  board ID revision
  6335.     DI = BCD BIOS version number
  6336. SeeAlso: AX=5F01h,AH=FFh"Oak"
  6337.  
  6338. (Table 0118)
  6339. Values for Everex monitor type:
  6340.  00h    mono
  6341.  01h    CGA
  6342.  02h    EGA
  6343.  03h    digital multifrequency
  6344.  04h    IBM PS/2
  6345.  05h    IBM 8514
  6346.  06h    SuperVGA
  6347.  07h    analog multifrequency
  6348.  08h    super multifrequency
  6349.  
  6350. Bitfields for Everex feature bits:
  6351. Bit(s)    Description    (Table 0119)
  6352.  7-6    memory size
  6353.     00 = 256K
  6354.     01 = 512K
  6355.     10 = 1024K
  6356.     11 = 2048K
  6357.  5    special oscillator present
  6358.  4    VGA protect enabled
  6359.  0    6845 emulation
  6360.  
  6361. (Table 0120)
  6362. Values for board model for Trident-based Everex cards:
  6363.  0236h    Ultragraphics II
  6364.  0620h    Vision VGA
  6365.  0673h    EVGA
  6366.  0678h    Viewpoint
  6367. --------V-107000BX0004-----------------------
  6368. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  6369.     AX = 7000h
  6370.     BX = 0004h
  6371. Return: ES:DI -> FAR paging function (call with DL = page to set)
  6372. Note:    the word preceding ES:DI is the length of the function in bytes, and
  6373.       the last byte of the function is a FAR return instruction.
  6374. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  6375. --------V-107000BX0005-----------------------
  6376. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  6377.     AX = 7000h
  6378.     BX = 0005h
  6379.     CL = maximum number of modes to get info for
  6380.     CH = mode type to get info for (see #0121)
  6381.     DL = monitor type to get info for
  6382.     ES:DI -> buffer for mode info (see #0122)
  6383. Return: CL = total number of modes fitting criteria
  6384.     CH = size of each info record
  6385. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  6386.  
  6387. (Table 0121)
  6388. Values for Everex mode type:
  6389.  00h    all modes
  6390.  01h    monochrome text modes
  6391.  02h    color text modes
  6392.  03h    four-color CGA graphics modes
  6393.  04h    two-color CGA graphics modes
  6394.  05h    16-color graphics modes
  6395.  06h    256-color graphics modes
  6396.  
  6397. Format of Everex mode information record:
  6398. Offset    Size    Description    (Table 0122)
  6399.  00h    BYTE    mode number (bit 7 set if extended mode)
  6400.  01h    BYTE    mode type (see #0121)
  6401.  02h    BYTE    info bits (see #0123)
  6402.  03h    BYTE    font height
  6403.  04h    BYTE    text columns on screen
  6404.  05h    BYTE    text rows on screen
  6405.  06h    WORD    number of scan lines
  6406.  08h    BYTE    color information
  6407.         bits 7-4 reserved
  6408.              3-0 bits per pixel
  6409.  
  6410. Bitfields for Everex info bits:
  6411. Bit(s)    Description    (Table 0123)
  6412.  7,6    reserved
  6413.  5    monochrome mode
  6414.  4    interlaced display
  6415.  3    requires special oscillator
  6416.  2,1    memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
  6417.  0    reserved
  6418. --------V-1071-------------------------------
  6419. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  6420.     AH = 71h
  6421. Return: AX:BX -> WORD containing segment address of INCRAM
  6422.     AX:CX -> WORD containing offset of INCRAM
  6423. SeeAlso: AH=70h"TANDY"
  6424. --------V-1071------------------------------------
  6425. INT 10 - HUNTER 16 - DRAW LINE/BOX
  6426.     AH = 71h
  6427.     DS:BX -> control block (see #0124)
  6428. Return: nothing
  6429. Desc:    Draws a line or box. Only valid in graphics modes.
  6430. SeeAlso: AH=70h"HUNTER"
  6431.  
  6432. Format of HUNTER 16 control block:
  6433. Offset    Size    Description    (Table 0124)
  6434.  00h    WORD    left edge X co-ordinate
  6435.  02h    BYTE    lower edge Y co-ordinate
  6436.  03h    WORD    right edge X co-ordinate
  6437.  05h    BYTE    upper edge Y co-ordinate
  6438.  06h    BYTE    color (00h white, 01h black, FFh invert)
  6439.  07h    BYTE    type (00h line, 01h box)
  6440.  08h    BYTE    if non-zero (and type is BOX) fill with color
  6441. --------V-1072-------------------------------
  6442. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  6443.     AH = 72h
  6444.     AL = number of columns to shift scroll area, 00h to clear entire area
  6445.     BH = new attributes for blanked columns at left
  6446.     CH,CL = row, column of upper left corner of scroll area
  6447.     DH,DL = row, column of lower right corner of scroll area
  6448. Return: nothing
  6449. SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
  6450. --------V-1072------------------------------------
  6451. INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
  6452.     AH = 72h
  6453.     AL = mechanism to use
  6454.         00h do not use inverse video
  6455.         01h emulate MDA. Display attribute 07h is normal video and 70h is
  6456.         inverse video.
  6457.         02h use inverse video if background is non-black.
  6458.         03h use inverse video for high intensity text.
  6459.         04h use inverse video for text with background intensity greater
  6460.         than foreground intensity.
  6461.         05h use inverse video for text with background color other than
  6462.         black or high intensity foreground.
  6463. Return: nothing
  6464. SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
  6465. --------V-1073-------------------------------
  6466. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  6467.     AH = 73h
  6468.     AL = number of columns to shift scroll area, 00h to clear entire area
  6469.     BH = new attributes for blanked columns at right
  6470.     CH,CL = row, column of upper left corner of scroll area
  6471.     DH,DL = row, column of lower right corner of scroll area
  6472. Return: nothing
  6473. SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
  6474. --------V-1073------------------------------------
  6475. INT 10 - HUNTER 16 - SELECT TEXT FONT
  6476.     AH = 73h
  6477.     AL = new font
  6478.           00h  7x7 in a 8x8 cell
  6479.           01h  5x7 in a 6x8 cell
  6480.           06h  3x5 in a 4x6 cell
  6481. Return: BH = cell width
  6482.     BL = cell height
  6483. SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
  6484. --------V-1074------------------------------------
  6485. INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
  6486.     AH = 74h
  6487.     DH = row (0..24)
  6488.     DL = column (0..79)
  6489. Return: nothing
  6490. Desc:    set the position in the virtual screen being displayed in the LCD
  6491.       screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
  6492.       position for the window which has the cursor.
  6493. SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
  6494. --------V-1075------------------------------------
  6495. INT 10 - HUNTER 16 - SET ZOOM
  6496.     AH = 75h
  6497.     AL = new Zoom state (00h off, nonzero on)
  6498. Return: nothing
  6499. SeeAlso: AH=74h,AH=76h
  6500. --------V-1076------------------------------------
  6501. INT 10 - HUNTER 16 - LOOKING KEYS
  6502.     AH = 76h
  6503.     AL = action
  6504.          00h home the window
  6505.          01h move up one line
  6506.          02h move down one line
  6507.          03h move left one character
  6508.          04h move right one character
  6509.          05h flip window to other side of virtual screen
  6510. Return: nothing
  6511. Desc:    moves the displayed screen around the virtual screen
  6512. SeeAlso: AH=74h,AH=75h
  6513. --------V-1077------------------------------------
  6514. INT 10 - HUNTER 16 - GET GRAPHICS FONT
  6515.     AH = 77h
  6516. Return: AL = font number (see #0125)
  6517. SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
  6518.  
  6519. (Table 0125)
  6520. Values for HUNTER 16 graphics font number:
  6521.  00h     7x7  in a  8x8     cell
  6522.  01h     5x7  in a  6x8     cell
  6523.  02h     7x9  in a  8x10 cell
  6524.  03h    14x9  in a 16x10 cell
  6525.  04h     7x18 in a  8x20 cell
  6526.  05h    14x18 in a 16x20 cell
  6527.  06h     3x5  in a  4x6     cell
  6528. Note:    size is X * Y
  6529. --------V-1078------------------------------------
  6530. INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
  6531.     AH = 78h
  6532.     AL = new state of backlight (00h on, 01h off)
  6533. Return: nothing
  6534. SeeAlso: AH=64h,INT 15/AH=74h
  6535. --------V-107F-------------------------------
  6536. INT 10 - Paradise SVGA - WD90C24 INSTALLATION CHECK
  6537.     AH = 7Fh
  6538. Return: AX = 1234h if WD90C24 chip installed
  6539. --------V-107F00-----------------------------
  6540. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  6541.     AX = 7F00h
  6542. Return: AL <> 7Fh if not supported
  6543.     AL = 7Fh if supported
  6544.         AH = status
  6545.         00h successful
  6546.             ES:DI -> info structure (see #0126)
  6547.         01h failed
  6548. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  6549.       an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  6550.       Seiko Epson Corporation intended to provided a standardized interface
  6551.       to SuperVGA functionality not addressed by the VESA standard
  6552. SeeAlso: AX=4F00h
  6553.  
  6554. Format of SOLLEX SuperVGA info structure:
  6555. Offset    Size    Description    (Table 0126)
  6556.  00h    DWORD    pointer to VESA function dispatch table
  6557.  04h    DWORD    pointer to SOLLEX function dispatch table
  6558.  08h    DWORD    pointer to VESA SuperVGA info (see #0075 at AX=4F00h)
  6559.  0Ch    DWORD    pointer to mode info structure table, consisting of
  6560.           alternating ResInfo (see #0127) and VESA mode information
  6561.           (see #0077 at AX=4F01h) blocks, terminated with an FFFFh word
  6562.  10h    DWORD    pointer to font info structure table (see #0128)
  6563.  14h    WORD    high resolution crystal frequency in Hz (0000h = not present)
  6564.  16h    DWORD    pointer to ASCIZ ID string
  6565.  1Ah    DWORD    pointer to timeout reset table
  6566.         array of bytes, each a multiple of the minimum time increment
  6567.  1Eh    WORD    minimum time increment in timer ticks
  6568.  20h    BYTE    inverse options supported
  6569.         bit 0: inverse supported
  6570.         bits 1-7: reserved
  6571.  21h    BYTE    normal color value
  6572.  22h    BYTE    inverse color value
  6573.  23h    WORD    port to be accessed for normal/inverse settings
  6574.  25h    WORD    type of interface chip (currently undefined)
  6575.  27h    WORD    program operational mode
  6576.         bits 1-0: 00 no preference
  6577.               01 terse (minimum detail in program messages)
  6578.               10 verbose
  6579.               11 use menus if supported, verbose mode otherwise
  6580.         bits 7-2: reserved
  6581.  29h    WORD    SOLLEX specification version
  6582.  2Bh    WORD    version of VESA/SOLLEX implementation
  6583.  2Dh    DWORD    offset to relocatable portion of SOLLEX extensions (for CONFIG)
  6584.  2Eh    DWORD    offset to unused section of the extensions ROM
  6585.  31h 16 BYTEs    reserved
  6586. Note:    all DWORD pointers initially require segment fixups; if the segment
  6587.       is 0000h, it should be changed to the returned ES, otherwise it
  6588.       may be assumed to be correct
  6589.  
  6590. Format of SOLLEX SuperVGA ResInfo:
  6591. Offset    Size    Description    (Table 0127)
  6592.  00h    WORD    16-bit mode number
  6593.  02h    WORD    adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  6594.  04h    WORD    display info (see #0131)
  6595.  06h    DWORD    pointer to video parameter table
  6596.  0Ah    BYTE    replacement entry in master Video Parameter
  6597.  0Bh    BYTE    mode requested for mode set by BIOS
  6598.  0Ch    DWORD    pointer to LoadReg table
  6599.  10h    BYTE    index into table of clock values (see #0129)
  6600. SeeAlso: #0126
  6601.  
  6602. Format of SOLLEX SuperVGA font info table [array] entry:
  6603. Offset    Size    Description    (Table 0128)
  6604.  00h    BYTE    required font height
  6605.  01h    BYTE    parameter to load text mode font
  6606.  02h    BYTE    parameter to load graphics mode font
  6607. SeeAlso: #0126
  6608.  
  6609. (Table 0129)
  6610. Values for SOLLEX SuperVGA clock value index:
  6611.  00h    25 MHz
  6612.  01h    28 MHz
  6613.  02h    PCLK
  6614.  03h    31.5 MHz (VESA 640x480)
  6615.  04h    reserved
  6616.  05h    16 MHz (EGA)
  6617.  06h    PCLK
  6618.  07h    24 MHz (EGA)
  6619.  08h    25 MHz
  6620.  09h    28 MHz
  6621.  0Ah    36 MHz
  6622.  0Bh    45 MHz (for 1024x768)
  6623.  0Ch    80 MHz
  6624.  0Dh    40 MHz
  6625.  0Eh    65 MHz
  6626.  0Fh     1 MHz (for powerdown)
  6627. SeeAlso: #0126
  6628. --------V-107F00BX4000-----------------------
  6629. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  6630.     AX = 7F00h
  6631.     BX = 4000h
  6632. Return: AX = 007Fh if supported
  6633.         DX:BX -> DAC set mode routine
  6634. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h,#0649 at INT 1A/AX=B102h
  6635. --------V-107F00BX4001-----------------------
  6636. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  6637.     AX = 7F00h
  6638.     BX = 4001h
  6639. Return: AX = 007Fh if supported
  6640.         CX = current linear address base (high word)
  6641. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  6642. --------V-107F00BX4002-----------------------
  6643. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  6644.     AX = 7F00h
  6645.     BX = 4002h
  6646.     CX = new linear address base (high word)
  6647. Return: AX = 007Fh if supported
  6648. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  6649. --------V-107F01BL00-------------------------
  6650. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  6651.     AX = 7F01h
  6652.     BL = 00h
  6653.     CX = adapter request (see #0130)
  6654. Return: AL <> 7Fh if not supported
  6655.     AL = 7Fh if supported
  6656.         AH = status
  6657.         00h successful
  6658.         01h failed
  6659. Note:    initializes video hardware to a particular standard
  6660. SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=01h,AX=7F01h/BL=02h
  6661.  
  6662. Bitfields for SOLLEX SuperVGA adapter request:
  6663. Bit(s)    Description    (Table 0130)
  6664.  1-0    adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  6665.  2    reserved
  6666.  4-3    change displays (00 none, 01 analog 10 digital 11 panel)
  6667.  6-5    desired monitor sense (01 color, 10 mono, 11=8514)
  6668.  7    lock override
  6669.  8    alternate adapter mode
  6670.  15-9    reserved
  6671. --------V-107F01BL01-------------------------
  6672. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  6673.     AX = 7F01h
  6674.     BL = 01h
  6675. Return: AL <> 7Fh if not supported
  6676.     AL = 7Fh if supported
  6677.         AH = status
  6678.         00h successful
  6679.         01h failed
  6680.         BX = adapter type (see #0130)
  6681.         DX = display type (see #0131)
  6682. SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h,AX=7F01h/BL=02h
  6683.  
  6684. Bitfields for SOLLEX SuperVGA display type:
  6685. Bit(s)    Description    (Table 0131)
  6686.  15-9    reserved
  6687.  8    alternate display active
  6688.  7    Enhanced Color Display monitor active
  6689.  6    multi-frequency digital monitor active
  6690.  5    PS/2-type monitor active
  6691.  4    plasma/electroluminescent panel active
  6692.  3    LCD panel active
  6693.  2    multi-frequency analog monitor active
  6694.  1-0    monitor sense (00 none, 01 color, 10 mono, 11=8514)
  6695. --------V-107F01BL02-------------------------
  6696. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  6697.     AX = 7F01h
  6698.     BL = 02h
  6699.     CX = adapter request (see #0130)
  6700. Return: AL <> 7Fh if not supported
  6701.     AL = 7Fh if supported
  6702.         AH = status
  6703.         00h requested setting can successfully be made
  6704.         01h requested setting not available in this configuration
  6705. SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h
  6706. --------V-107F02BL00-------------------------
  6707. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  6708.     AX = 7F02h
  6709.     BL = 00h
  6710.     CX = display output setting (see #0132)
  6711. Return: AL <> 7Fh if not supported
  6712.     AL = 7Fh if supported
  6713.         AH = status
  6714.         00h successful
  6715.         01h failed
  6716. SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
  6717.  
  6718. Bitfields for SOLLEX SuperVGA display output setting:
  6719. Bit(s)    Description    (Table 0132)
  6720.  0    CRTC control in 2,1 valid
  6721.  1    enable digital output
  6722.  2    enable analog output
  6723.  3    panel control in 5,4 valid
  6724.  4    enable LCD output
  6725.  5    enable plasma/EL output
  6726.  6    inverse control in 7 valid
  6727.  7    0=normal, 1=inverse
  6728.  15-8    reserved
  6729. --------V-107F02BL01-------------------------
  6730. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  6731.     AX = 7F02h
  6732.     BL = 01h
  6733. Return: AL <> 7Fh if not supported
  6734.     AL = 7Fh if supported
  6735.         AH = status
  6736.         00h successful
  6737.             BX = display output setting (see #0132)
  6738.             CX = displays attached (see #0133)
  6739.         01h failed
  6740. SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
  6741.  
  6742. Bitfields for SOLLEX SuperVGA displays attached:
  6743. Bit(s)    Description    (Table 0133)
  6744.  0    PS/2 display on analog output
  6745.  1    multi-frequency monitor on analog output
  6746.  2    LCD panel attached
  6747.  3    plasma/electroluminescent panel attached
  6748.  4    multi-frequency monitor on digital output
  6749.  5    Enhanced Color Display attached to digital outpt
  6750.  6    alternate display
  6751.  15-7    reserved
  6752. --------V-107F03BL00-------------------------
  6753. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  6754.     AX = 7F03h
  6755.     BL = 00h
  6756.     CX = support type
  6757.         0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  6758.         0005h-0012h reserved for SOLLEX, 0013h Hercules,
  6759.         0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  6760. Return: AL <> 7Fh if not supported
  6761.     AL = 7Fh if supported
  6762.         AH = status
  6763.         00h successful
  6764.             CX = size of video support code
  6765.             DX = segment of physical video support (0000h if no ROM)
  6766.             ES = segment of active video support
  6767.             ES:DI -> information block (DI = 0000h if none available)
  6768.         01h failed
  6769. SeeAlso: AX=7F03h/BL=01h
  6770. --------V-107F03BL01-------------------------
  6771. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  6772.     AX = 7F03h
  6773.     BL = 01h
  6774.     CX = support request
  6775.     ES = segment of support code
  6776. Return: AL <> 7Fh if not supported
  6777.     AL = 7Fh if supported
  6778.         AH = status
  6779.         00h successful
  6780.         01h failed
  6781. Note:    initializes the indicated video support by calling ES:0003h; this
  6782.       function may be used to switch the active video support back to
  6783.       ROM after AX=7F03h/BL=02h
  6784. SeeAlso: AX=7F03h/BL=00h
  6785. --------V-107F03BL02-------------------------
  6786. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  6787.     AX = 7F03h
  6788.     BL = 02h
  6789.     CX = support request
  6790.     ES = destination segment
  6791. Return: AL <> 7Fh if not supported
  6792.     AL = 7Fh if supported
  6793.         AH = status
  6794.         00h successful
  6795.         01h failed
  6796. SeeAlso: AX=7F00h"SOLLEX",AX=7F03h/BL=01h
  6797. --------V-107F04BL00-------------------------
  6798. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  6799.     AX = 7F04h
  6800.     BL = 00h
  6801.     CX = new power state
  6802. Return: AL <> 7Fh if not supported
  6803.     AL = 7Fh if supported
  6804.         AH = status
  6805.         00h successful
  6806.         01h failed
  6807. Note:    higher values progressively reduce the operations available on the
  6808.       video adapter while yielding increasing power savings
  6809. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=01h
  6810. --------V-107F04BL01-------------------------
  6811. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  6812.     AX = 7F04h
  6813.     BL = 01h
  6814. Return: AL <> 7Fh if not supported
  6815.     AL = 7Fh if supported
  6816.         AH = status
  6817.         00h successful
  6818.             CX = current power state
  6819.             DX = maximum state
  6820.         01h failed
  6821. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=00h
  6822. --------V-107F04BL02-------------------------
  6823. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  6824.     AX = 7F04h
  6825.     BL = 02h
  6826.     CX = timeout reset
  6827. Return: AL <> 7Fh if not supported
  6828.     AL = 7Fh if supported
  6829.         AH = status
  6830.         00h successful
  6831.         01h failed
  6832. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=03h
  6833. --------V-107F04BL03-------------------------
  6834. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  6835.     AX = 7F04h
  6836.     BL = 03h
  6837. Return: AL <> 7Fh if not supported
  6838.     AL = 7Fh if supported
  6839.         AH = status
  6840.         00h successful
  6841.             BX = time increment
  6842.             CX = current timeout reset
  6843.             DX = maximum timeout reset
  6844.             ES:DI -> timeout reset table (array of bytes)
  6845.         01h failed
  6846. Note:    the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  6847. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=02h
  6848. --------V-107F05-----------------------------
  6849. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  6850.     AX = 7F05h
  6851.     ES:DI -> register value table (see #0134)
  6852. Return: AL <> 7Fh if not supported
  6853.     AL = 7Fh if supported
  6854.         AH = status
  6855.         00h successful
  6856.         01h failed
  6857. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  6858.  
  6859. Format of SOLLEX SuperVGA register value table:
  6860. Offset    Size    Description    (Table 0134)
  6861.  00h    WORD    base I/O register (FFFFh = end of list)
  6862.  02h 2N BYTEs    pairs of values to be written to the base I/O register as an
  6863.           index value and the following register as a data byte
  6864.  2N+2    WORD    FFFFh (end of data list)
  6865.     ... (repeats until FFFFh base address)
  6866. --------V-107F06-----------------------------
  6867. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  6868.     AX = 7F06h
  6869.     BL = subfunction
  6870.         00h set multiple font state
  6871.         CX = new state (00h off, 01h on)
  6872.         01h get multiple font state
  6873.         Return: BL = current state (00h off, 01h on)
  6874. Return: AL <> 7Fh if not supported
  6875.     AL = 7Fh if supported
  6876.         AH = status
  6877.         00h successful
  6878.         01h failed
  6879. SeeAlso: AX=1100h,AX=1103h
  6880. --------V-107F07-----------------------------
  6881. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  6882.     AX = 7F07h
  6883.     BL = how much to fill
  6884.        00h regen size
  6885.        01h all video memory
  6886.     CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  6887. Return: AL <> 7Fh if not supported
  6888.     AL = 7Fh if supported
  6889.         AH = status
  6890.         00h successful
  6891.         01h failed
  6892. SeeAlso: AH=06h
  6893. --------A-1080-------------------------------
  6894. INT 10 - CU Writer v1.4 - GET OPTION
  6895.     AH = 80h
  6896.     AL = desired option
  6897. Return: ???
  6898. Program: CU Writer is a public-domain Thai-English word processor from
  6899.       Chulalongkorn University, Bangkok
  6900. SeeAlso: AH=81h"CU Writer"
  6901. --------Q-1080--DX4456-----------------------
  6902. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  6903.     AH = 80h
  6904.     DX = 4456h ('DV')
  6905.     ES:DI -> FAR subroutine to be called on ???
  6906. Return: DS = segment of DESQview data structure for video buffer
  6907. Note:    this function is probably meant for internal use only, due to the magic
  6908.       value required in DX
  6909.     the subroutine seems to be called when the DESQview menu is accessed;
  6910.       on entry, AL = 03h or 04h
  6911. --------A-1081-------------------------------
  6912. INT 10 - CU Writer v1.4 - SET OPTION
  6913.     AH = 81h
  6914.     ???
  6915. Return: ???
  6916. SeeAlso: AH=80h"CU Writer"
  6917. --------Q-1081--DX4456-----------------------
  6918. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  6919.     AH = 81h
  6920.     DX = 4456h ('DV')
  6921. Return: ES = segment of DESQview data structure for video buffer
  6922.         BYTE ES:[0] = current window number in DV 2.0x
  6923. Note:    this function is probably meant for internal use only, due to the magic
  6924.       value required in DX
  6925. SeeAlso: AH=82h"DESQview"
  6926. --------Q-1082--DX4456-----------------------
  6927. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  6928.     AH = 82h
  6929.     DX = 4456h ('DV')
  6930. Return: DS = segment in DESQview for data structure
  6931.          in DV 2.00,
  6932.           BYTE DS:[0] = window number
  6933.           WORD DS:[1] = segment of other data structure
  6934.           WORD DS:[3] = segment of window's object handle
  6935.     ES = segment of DESQview data structure for video buffer
  6936.     AL = current window number
  6937.     AH = ???
  6938.     BL = direct screen writes
  6939.         00h program does not do direct writes
  6940.         01h program does direct writes, so shadow buffer not usable
  6941.     BH = ???
  6942.     CL = current video mode
  6943.     CH = ???
  6944. Note:    this function is probably meant for internal use only, due to the magic
  6945.       value required in DX
  6946. SeeAlso: AH=81h"DESQview"
  6947. --------J-108200-----------------------------
  6948. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  6949.     AX = 8200h
  6950.     BL = new scroll mode or FFh to get current mode
  6951.         00h dynamic, 01h software
  6952. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  6953. SeeAlso: AH=06h,AH=07h
  6954. --------J-108300-----------------------------
  6955. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  6956.     AX = 8300h
  6957. Return: AX = offset of video RAM
  6958.     ES:BX -> virtual text RAM buffer
  6959. SeeAlso: AX=5201h
  6960. ----------1086-------------------------------
  6961. INT 10 - ???
  6962.     AH = 86h
  6963. Note:    called by Diamond Stealth64 Video STLTH64.VXD
  6964. SeeAlso: INT 2F/AX=4021h
  6965. --------N-108B-------------------------------
  6966. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  6967.     AH = 8Bh
  6968. Return: nothing
  6969. SeeAlso: AH=92h,AH=93h
  6970. --------N-1090-------------------------------
  6971. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  6972.     AH = 90h
  6973. Return: AL = current video mode (see #0009 at AH=00h)
  6974. SeeAlso: AH=91h
  6975. --------N-1091-------------------------------
  6976. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  6977.     AH = 91h
  6978. Return: AL = video adapter type (see #0135)
  6979. Note:    types less than 80h do not imply that the current user is on the host
  6980. SeeAlso: AH=90h
  6981.  
  6982. (Table 0135)
  6983. Values for Alloy MW386 video adapter type:
  6984.  00h    monochrome
  6985.  01h    Hercules monochrome graphics
  6986.  02h    CGA
  6987.  03h    EGA
  6988.  04h    VGA
  6989.  80h    monochrome text terminal
  6990.  81h    Hercules graphics terminal
  6991.  82h    color graphics terminal
  6992. --------N-1092-------------------------------
  6993. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  6994.     AH = 92h
  6995. Return: nothing
  6996. Note:    the terminal will be updated even when screen updates are inhibited if
  6997.       TTY output is used
  6998. SeeAlso: AH=8Bh
  6999. --------N-1093-------------------------------
  7000. INT 10 - Alloy MW386 - REDRAW SCREEN
  7001.     AH = 93h
  7002. Return: nothing
  7003. SeeAlso: AH=8Bh,AH=FFh
  7004. --------A-10A0-------------------------------
  7005. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  7006.     AH = A0h
  7007.     ???
  7008. Return: ???
  7009. Program: CU Writer is a public-domain Thai-English word processor from
  7010.       Chulalongkorn University, Bangkok
  7011. SeeAlso: AH=80h"CU Writer",AH=B0h
  7012. --------p-10A000-----------------------------
  7013. INT 10 - ATI Mach64 BIOS - ???
  7014.     AX = A000h
  7015.     CL = ??? (bits 2-0 may not be 000)
  7016.     CH = ??? (81h or ???)
  7017.     DX = segment of ??? (if CH=81h)
  7018.     ???
  7019. Return: AX = ???
  7020. SeeAlso: AX=4F10h/BL=00h,AX=A001h
  7021. ----------10A001-----------------------------
  7022. INT 10 - ATI Mach64 BIOS - ???
  7023.     AX = A001h
  7024.     CL = ??? flags
  7025.     ???
  7026. Return: AH = status
  7027.         00h successful
  7028.         01h failed
  7029.     ???
  7030. SeeAlso: AX=A000h,AX=A002h
  7031. ----------10A002-----------------------------
  7032. INT 10 - ATI Mach64 BIOS - ???
  7033.     AX = A002h
  7034.     CL = ??? (bits 2-0 may not be 000)
  7035.     CH = ??? (81h or ???)
  7036.     DX = segment of ??? (if CH=81h)
  7037.     ???
  7038. Return: AH = status
  7039.         00h successful
  7040.         01h failed
  7041.     ???
  7042. Note:    executes AX=A000h, then AX=A001h if A000h was successful
  7043. SeeAlso: AX=A000h,AX=A001h
  7044. ----------10A003-----------------------------
  7045. INT 10 - ATI Mach64 BIOS - ???
  7046.     AX = A003h
  7047.     BX = ???
  7048.     ???
  7049. Return: AH = status (00h successful)
  7050.     ???
  7051. SeeAlso: AX=A000h,AX=A002h
  7052. --------V-10A004-----------------------------
  7053. INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE
  7054.     AX = A004h
  7055.     ???
  7056. Return: ???
  7057. Desc:    configure display parameters
  7058. SeeAlso: AX=A01Bh"PhoenixVIEW/LC"
  7059. ----------10A004-----------------------------
  7060. INT 10 - ATI Mach64 BIOS - ???
  7061.     AX = A004h
  7062.     BX = video mode??? (0000-00FFh)
  7063.     DX = ??? (sent to some port [66ECh???] one bit at a time, high to low)
  7064.     ???
  7065. Return: AH = status
  7066.         00h successful
  7067.         01h failed
  7068.     ???
  7069. SeeAlso: AX=A000h,AX=A002h
  7070. ----------10A005-----------------------------
  7071. INT 10 - ATI Mach64 BIOS - ???
  7072.     AX = A005h
  7073.     CL = ??? flags (bits 0,2, others?)
  7074.     ???
  7075. Return: AH = status
  7076.         00h successful
  7077.         01h failed
  7078.     ???
  7079. SeeAlso: AX=A000h,AX=A002h
  7080. ----------10A006-----------------------------
  7081. INT 10 - ATI Mach64 BIOS - ???
  7082.     AX = A006h
  7083.     ???
  7084. Return: AH = status
  7085.         00h successful
  7086.         01h failed
  7087.     ???
  7088. SeeAlso: AX=A000h,AX=A002h
  7089. ----------10A007-----------------------------
  7090. INT 10 - ATI Mach64 BIOS - GET ???
  7091.     AX = A007h
  7092. Return: AH = 00h (successful)
  7093.     AL = ??? (00h)
  7094.     BX = ??? (15A0h in examined BIOS)
  7095.     DX = segment of BIOS
  7096. SeeAlso: AX=A000h,AX=A002h
  7097. ----------10A008-----------------------------
  7098. INT 10 - ATI Mach64 BIOS - GET ??? SIZE
  7099.     AX = A008h
  7100.     CL = ??? flags
  7101.     ???
  7102. Return: AH = 00h (successful)
  7103.     BX = size of ??? (0046h if CL bit 0 clear on entry)
  7104. SeeAlso: AX=A000h,AX=A009h
  7105. ----------10A009-----------------------------
  7106. INT 10 - ATI Mach64 BIOS - GET ???
  7107.     AX = A009h
  7108.     DX:BX -> buffer for ???
  7109.     CL = ??? flags
  7110.     ???
  7111. Return: AH = status
  7112.         00h successful
  7113.         DX:BX buffer filled
  7114.         01h failed
  7115.     ???
  7116. SeeAlso: AX=A000h,AX=A008h
  7117. ----------10A00A-----------------------------
  7118. INT 10 - ATI Mach64 BIOS - GET ???
  7119.     AX = A00Ah
  7120. Return: AH = 00h (successful)
  7121.     AL = ??? (01h)
  7122.     BX = ??? (5938h)
  7123.     CX = ??? (595Eh)
  7124.     DX = segment of BIOS
  7125. SeeAlso: AX=A000h,AX=A002h
  7126. ----------10A00B-----------------------------
  7127. INT 10 - ATI Mach64 BIOS - ???
  7128.     AX = A00Bh
  7129.     BX = ???
  7130.     CL = ??? flags
  7131.     ???
  7132. Return: AH = status
  7133.         00h successful
  7134.         01h failed
  7135.     ???
  7136. SeeAlso: AX=A000h,AX=A002h
  7137. --------p-10A00C-----------------------------
  7138. INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
  7139.     AX = A00Ch
  7140.     CL = new state
  7141.         00h normal operation
  7142.         01h standby
  7143.         02h suspend
  7144.         03h off
  7145. Return: AH = status
  7146.         00h successful
  7147.         01h failed
  7148. Note:    CL bit 2 affects values written to video card's ports
  7149. SeeAlso: AX=A000h,AX=A00Dh,AX=4F00h,AX=4F10h/BL=01h
  7150. ----------10A00D-----------------------------
  7151. INT 10 - ATI Mach64 BIOS - GET SLEEP MODE
  7152.     AX = A00Dh
  7153. Return: AH = 00h (successful)
  7154.     CL = current power mode
  7155.         00h normal operation
  7156.         01h standby
  7157.         02h suspend
  7158.         03h off
  7159. SeeAlso: AX=A00Ch,AX=4F10h/BL=02h
  7160. ----------10A00E-----------------------------
  7161. INT 10 - ATI Mach64 BIOS - SET ???
  7162.     AX = A00Eh
  7163.     CL = ??? (00h-03h)
  7164. Return: AH = status
  7165.         00h successful
  7166.         01h failed
  7167. Note:    CL zero/nonzero are treated differently
  7168. SeeAlso: AX=A000h,AX=A00Fh
  7169. ----------10A00F-----------------------------
  7170. INT 10 - ATI Mach64 BIOS - GET ???
  7171.     AX = A00Fh
  7172. Return: AH = 00h (successful)
  7173.     CL = ??? (00h-03h, read from PORT 42ECh)
  7174. SeeAlso: AX=A000h,AX=A00Eh
  7175. ----------10A010-----------------------------
  7176. INT 10 - ATI Mach64 BIOS - ???
  7177.     AX = A010h
  7178.     CL = ???  (80h/other)
  7179.     ???
  7180. Return: AH = status
  7181.         00h successful
  7182.         01h failed
  7183.     ???
  7184. SeeAlso: AX=A000h,AX=A002h
  7185. ----------10A011-----------------------------
  7186. INT 10 - ATI Mach64 BIOS - GET ???
  7187.     AX = A011h
  7188. Return: AH = 00h (successful)
  7189.     BL = ??? (1Fh)
  7190.     BH = ??? (0Fh)
  7191.     CL = ??? (00h)
  7192.     CH = ??? (0Fh)
  7193.     DX = ??? (00FFh)
  7194. SeeAlso: AX=A000h,AX=A010h
  7195. ----------10A012-----------------------------
  7196. INT 10 - ATI Mach64 BIOS - GET ???
  7197.     AX = A012h
  7198. Return: AH = 00h (successful)
  7199.     AL = ??? (00h)
  7200.     BX = ??? (0000h)
  7201.     CX = ??? (0000h)
  7202.     DX = ??? (02ECh)
  7203. SeeAlso: AX=A000h,AX=A002h
  7204. ----------10A013-----------------------------
  7205. INT 10 - ATI Mach64 BIOS - ???
  7206.     AX = A013h
  7207.     ???
  7208. Return: AH = status
  7209.         00h successful
  7210.         01h failed
  7211.     ???
  7212. Note:    not implemented in examined BIOS, always returns AH=01h
  7213. SeeAlso: AX=A000h,AX=A002h
  7214. --------V-10A01B-----------------------------
  7215. INT 10 - PhoenixVIEW/LC - CRT MONITOR DETECTION
  7216.     AX = A01Bh
  7217.     ???
  7218. Return: ???
  7219. Desc:    determine whether an external display is currently attached
  7220. SeeAlso: AX=A004h"PhoenixVIEW/LC"
  7221. --------U-10AA-------------------------------
  7222. INT 10 OU - Player's Tool 3.0 - UNINSTALL
  7223.     AH = AAh
  7224. Return: ???
  7225. Note:    this call has been removed in PT 3.996b
  7226. Program: Player's Tool is a game cheater by Dmitry Yakunin & Andy Robinson
  7227. SeeAlso: AH=ABh,INT 2F/AH=AAh
  7228. --------U-10AB-------------------------------
  7229. INT 10 OU - Player's Tool 3.0 - INSTALLATION CHECK
  7230.     AH = ABh
  7231. Return: BH = FFh
  7232.     ???
  7233. Note:    this call has been removed in PT 3.996b
  7234. SeeAlso: AH=AAh,INT 2F/AH=ABh
  7235. --------A-10B0-------------------------------
  7236. INT 10 - CU Writer v1.4 - PUT PIXEL
  7237.     AH = B0h
  7238.     ???
  7239. Return: ???
  7240. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  7241. --------A-10B1-------------------------------
  7242. INT 10 - CU Writer v1.4 - MOVE TO
  7243.     AH = B1h
  7244.     ???
  7245. Return: ???
  7246. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  7247. --------A-10B2-------------------------------
  7248. INT 10 - CU Writer v1.4 - DRAW LINE TO
  7249.     AH = B2h
  7250.     ???
  7251. Return: ???
  7252. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  7253. --------A-10B3-------------------------------
  7254. INT 10 - CU Writer v1.4 - FLOOD FILL
  7255.     AH = B3h
  7256.     ???
  7257. Return: ???
  7258. SeeAlso: AH=B2h,AH=B5h
  7259. --------A-10B4-------------------------------
  7260. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  7261.     AH = B4h
  7262.     ???
  7263. Return: ???
  7264. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  7265. --------A-10B5-------------------------------
  7266. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  7267.     AH = B5h
  7268.     ???
  7269. Return: ???
  7270. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  7271. --------V-10BD44-----------------------------
  7272. INT 10 U - Compaq QVision - ???
  7273.     AX = BD44h
  7274.     ???
  7275. Return: ???
  7276. Note:    called by Compaq's MTX132.COM, which places the QVision in 132-column
  7277.       mode
  7278. --------V-10BF--CX0000-----------------------
  7279. INT 10 - Athena Digital HGCIBM.COM - INSTALLATION CHECK
  7280.     AH = BFh
  7281.     CX = 0000h (???)
  7282. Return: CX = 0202h
  7283.     DL = ??? (internal data, possibly version number)
  7284. --------b-10BF00-----------------------------
  7285. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  7286.     AX = BF00h
  7287. Return: nothing
  7288. Desc:    specify that the external monitor become the active monitor
  7289. Note:    all registers preserved and the internal monitor is blanked
  7290. SeeAlso: AX=BF01h,AX=BF12h,AH=12h/BL=35h
  7291. --------b-10BF01-----------------------------
  7292. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  7293.     AX = BF01h
  7294. Return: nothing
  7295. Desc:    specify that the internal monitor become the active monitor
  7296. Note:    all registers preserved and the external monitor is blanked
  7297. SeeAlso: AX=BF00h,AX=BF12h,AH=12h/BL=35h
  7298. --------b-10BF02-----------------------------
  7299. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
  7300.     AX = BF02h
  7301.     BH = master mode
  7302.         04h CGA
  7303.         05h EGA
  7304.         07h MDA
  7305. Return: nothing
  7306. SeeAlso: AX=BF03h
  7307. --------b-10BF03BX0000-----------------------
  7308. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  7309.     AX = BF03h
  7310.     BX = 0000h
  7311. Return: BH = active monitor
  7312.         (00h = external, 01h = internal, 03h both, 04h neither)
  7313.     BL = master mode (see #0136)
  7314.     CH = ASIC type and version
  7315.         00h (reserved, very early Compaq VGCs)
  7316.         31h if QVision VGA
  7317.     CL = switchable VDU modes supported (see #0137)
  7318.     DH = internal monitor type (see #0138)
  7319.     DL = external monitor type (see #0138)
  7320. SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h
  7321.  
  7322. (Table 0136)
  7323. Values for Compaq video master mode:
  7324.  00h    switchable VDU not present
  7325.  04h    CGA
  7326.  05h    EGA
  7327.  07h    MDA
  7328.  08h    switchable LCD controller present
  7329.  09h    plasma VGA
  7330.  0Ah    TFT (active-matrix) VGA
  7331.  
  7332. Bitfields for Compaq switchable VDU modes support:
  7333. Bit(s)    Description    (Table 0137)
  7334.  0    CGA supported
  7335.  1,2    reserved (1)
  7336.  3    MDA supported
  7337.  4    BitBLT engine available
  7338.  5    132-column support availble
  7339.  6    640x480x256 mode available
  7340.  7    8-bit DAC mode available
  7341.  
  7342. (Table 0138)
  7343. Values for Compaq monitor type:
  7344.  00h    none
  7345.  01h    dual-mode monitor
  7346.  02h    5153 RGB monitor (RGBI 16-color)
  7347.  03h    Compaq Color monitor
  7348.  04h    640x400 flat panel (Plasma CGA)
  7349.  05h    VGC monochrome
  7350.  06h    VGC color
  7351.  07h    8-level mono LCD VGA (internal)
  7352.     1024x768 mono VGA (external)
  7353.  08h    16-level mono plasma VGA (internal)
  7354.     1024x768 color VGA (external)
  7355.  09h    4-level mono LCD CGA
  7356.  0Ah    16-level mono LCD VGA
  7357.  0Bh    active-matrix color VGA
  7358.  0Ch    active-matrix mono VGA
  7359.  0Dh    STN color VGA
  7360. --------b-10BF04-----------------------------
  7361. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  7362.     AX = BF04h
  7363.     BH = new state of delay (00h enabled, 01h disabled)
  7364. Return: nothing
  7365. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  7366.       version of the list will provide more definite information
  7367. SeeAlso: AX=BF05h
  7368. --------b-10BF05-----------------------------
  7369. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  7370.     AX = BF05h
  7371.     BH = new state of video
  7372.         00h off
  7373.         01h on
  7374. Return: nothing
  7375. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  7376.       version of the list will provide more definite information
  7377. SeeAlso: AH=12h/BL=36h,AX=BF04h
  7378. --------b-10BF06-----------------------------
  7379. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  7380.     AX = BF06h
  7381.     CL = address to be read from gray scale table
  7382. Return: AL = bit 3-0 - Value read from gray scale table
  7383.     CL = address to be read from gray scale table
  7384. SeeAlso: AH=12h/BL=33h,AX=BF07h
  7385. --------b-10BF07-----------------------------
  7386. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  7387.     AX = BF07h
  7388.     CH = value to write to gray scale table
  7389.     CL = address to be written to gray scale table
  7390. Return: nothing
  7391. SeeAlso: AX=BF06h,AX=BF08h
  7392. --------b-10BF08-----------------------------
  7393. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  7394.     AX = BF08h
  7395.     CH = bits 7-4 green weight
  7396.          bits 3-0 blue weight
  7397.     CL = bits 7-4 unused
  7398.          bits 3-0 red weight
  7399. Return: nothing
  7400. SeeAlso: AH=12h/BL=33h,AX=BF07h
  7401. --------b-10BF09-----------------------------
  7402. INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO
  7403.     AX = BF09h
  7404. Return: CF clear
  7405. Notes:    sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  7406.       to 6Fh and index 83h to 04h
  7407.     supported by at least the QVision board and the LTE Lite ROM BIOS
  7408. SeeAlso: AX=BF0Ah,AX=BF0Bh
  7409. --------b-10BF0A-----------------------------
  7410. INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO
  7411.     AX = BF0Ah
  7412. Return: CF clear
  7413. Notes:    clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  7414.       to 80h and index 83h to FBh
  7415.     supported by at least the QVision board and the LTE Lite ROM BIOS
  7416. SeeAlso: AX=BF09h,AX=BF0Bh
  7417. --------b-10BF0B-----------------------------
  7418. INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED
  7419.     AX = BF0Bh
  7420. Return: CF clear
  7421.     AX = state (0000h normal video, 0001h reverse video)
  7422. Note:    supported by at least the QVision board and the LTE Lite ROM BIOS
  7423. SeeAlso: AX=BF09h,AX=BF0Ah
  7424. --------b-10BF0C-----------------------------
  7425. INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE
  7426.     AX = BF0Ch
  7427. Return: CF clear
  7428. Desc:    specify that video DAC registers use only six bits of color info
  7429. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  7430. SeeAlso: AX=BF0Dh,AX=BF0Eh
  7431. --------b-10BF0D-----------------------------
  7432. INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE
  7433.     AX = BF0Dh
  7434. Return: CF clear
  7435. Desc:    specify that video DAC registers use all eight bits of color info
  7436. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  7437. SeeAlso: AX=BF0Ch,AX=BF0Eh
  7438. --------b-10BF0E-----------------------------
  7439. INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode
  7440.     AX = BF0Eh
  7441. Return: CF clear
  7442.     AL = DAC mode
  7443.         00h in 6-bit mode
  7444.         01h in 8-bit mode
  7445. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  7446. SeeAlso: AX=BF0Ch,AX=BF0Dh
  7447. --------b-10BF0F-----------------------------
  7448. INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER
  7449.     AX = BF0Fh
  7450.     BX = high address map location in megabytes, or
  7451.         0000h to disable high address map, or
  7452.         FFFFh to let ROM configure high address map
  7453. Return: CF clear
  7454.     AX = previous value of high address map register
  7455. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  7456.       Lite ROM BIOSes
  7457. SeeAlso: AX=BF10h
  7458. --------b-10BF10-----------------------------
  7459. INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER
  7460.     AX = BF10h
  7461. Return: CF clear
  7462.     AX = current value of high address map register
  7463. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  7464.       Lite ROM BIOSes
  7465.     the Compaq QVision documentation (October 1993) says the value is
  7466.       returned in BX, but this appears to be one of many typos
  7467. SeeAlso: AX=BF0Fh
  7468. --------b-10BF11-----------------------------
  7469. INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT
  7470.     AX = BF11h
  7471. Return: AL = BFh if supported
  7472.         CF clear
  7473.         ES:DI -> ASCII signature "COMPAQ"
  7474.         ES:SI -> advanced functionality table (see #0139)
  7475. Note:    supported by at least the QVision board and the LTE Lite and ProSignia
  7476.       ROM BIOSes
  7477. SeeAlso: AX=1A00h,AX=BF03h
  7478.  
  7479. Bitfields for Compaq advanced video functionality:
  7480. Bit(s)    Description    (Table 0139)
  7481.  31    future graphics extensions (reserved, set to 0)
  7482.  30-16    reserved
  7483.  15-12    available video memory in 256K blocks, less one (0000 = 256K, etc.)
  7484.  11-8    reserved
  7485.  7    QVision modes supported
  7486.  6    Advanced VGA modes supported
  7487.  5    Accelerated VGA modes supported
  7488.  4    standard VGA modes supported
  7489.  3-2    reserved
  7490.  1    132-column modes supported
  7491.  0    reserved
  7492. --------b-10BF12-----------------------------
  7493. INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR
  7494.     AX = BF12h
  7495.     BH reserved
  7496.     BL = function mask (see #0140)
  7497. Return: CF clear
  7498. Notes:    this function is a NOP if the VGA subsystem is inactive or the current
  7499.       Display Combination Code is 10h or higher
  7500.     supported by at least the QVision board and the LTE Lite and ProSignia
  7501.       ROM BIOSes
  7502. SeeAlso: AX=BF01h,AX=BF02h,#0650
  7503.  
  7504. Bitfields for function mask:
  7505. Bit(s)    Description    (Table 0140)
  7506.  7    command mode
  7507.     if set, bits 1 and 0 make the monitor active when set
  7508.     if clear, bits 1 and 0 toggle the monitor's state when set
  7509.  6-2    reserved
  7510.  1    internal monitor
  7511.  0    external monitor
  7512. --------b-10BF13-----------------------------
  7513. INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION
  7514.     AX = BF13h
  7515.     BL = subfunction
  7516.         00h load gamma correction table for true-color mode
  7517.         DS = BIOS data segment
  7518.         01h set palette RAM bypass
  7519.     BH = 00h
  7520. Return: nothing
  7521. Note:    these functions must be called after a video mode set, and are in
  7522.       effect only for the current video mode
  7523. SeeAlso: #0650
  7524. --------V-10BFA0BXADAD-----------------------
  7525. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  7526.     AX = BFA0h
  7527.     BX = ADADh
  7528. Return: AX = BDBDh if newer ADAPT.COM installed
  7529.         BX = BCD version (BH = major, BL = minor)
  7530.         CL = ???
  7531.         CH = ???
  7532.         DL = ???
  7533.     AX = ADADh if older version of ADAPT.COM installed
  7534. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  7535.       optionally-resident utility for setting display colors and cursor
  7536.       size; when resident, it also includes a screen blanker
  7537. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  7538. Index:    screen saver;ADAPT
  7539. --------V-10BFA1-----------------------------
  7540. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  7541.     AX = BFA1h
  7542. Return: AX = BDBEh if supported
  7543.         CH = current value of ???
  7544.         DL = current value of ???
  7545. SeeAlso: AX=BFA0h,AX=BFA2h
  7546. --------V-10BFA2-----------------------------
  7547. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  7548.     AX = BFA2h
  7549.     CH = new value for ???
  7550.     DL = new value for ???
  7551. Return: AX = BDBEh if supported
  7552. SeeAlso: AX=BFA0h,AX=BFA1h
  7553. --------A-10C0-------------------------------
  7554. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  7555.     AH = C0h
  7556.     ???
  7557. Return: ???
  7558. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  7559. --------V-10C000-----------------------------
  7560. INT 10 - S3 SpeedUp v3.00+ - INSTALLATION CHECK
  7561.     AX = C000h
  7562. Return: AX = FFFFh if installed
  7563.         DX = version number (binary, DH=major, DL=minor)
  7564.         BX = resident code segment
  7565. Program: S3SPDUP is a freeware TSR by Dietmar Meschede to improve the speed
  7566.       of chained video modes (both VESA and VGA Mode 13) on S3-chipset
  7567.       video cards
  7568. SeeAlso: AX=C001h,AX=C002h,AX=C003h,AX=D000h"S3VBE"
  7569. --------V-10C001-----------------------------
  7570. INT 10 - S3 SpeedUp v3.00+ - GET ACTIVE OPTIONS
  7571.     AX = C001h
  7572. Return: AX = FFFFh if function supported
  7573.         BX = currently active options (see #0141)
  7574. SeeAlso: AX=C000h,AX=C002h,AX=C003h
  7575.  
  7576. Bitfields for S3SpeedUp options:
  7577. Bit(s)    Description    (Table 0141)
  7578.  0    speed up banked VESA modes
  7579.  1    speed up 320x200 VGA mode 13
  7580. SeeAlso: #0147
  7581. --------V-10C002-----------------------------
  7582. INT 10 - S3 SpeedUp v3.00+ - SET ACTIVE OPTIONS
  7583.     AX = C002h
  7584.     BX = new value for active options (see #0141)
  7585. Return: AX = FFFFh if function supported
  7586. SeeAlso: AX=C000h,AX=C001h,AX=C003h,AX=D003h"S3VBE"
  7587. --------V-10C003-----------------------------
  7588. INT 10 - S3 SpeedUp v3.10+ - GET FLAGS
  7589.     AX = C003h
  7590. Return: AX = FFFFh if function supported
  7591.         BX = flags
  7592.         bit 0: SpeedUp is active
  7593.         bit 1: Windows run after SpeedUp
  7594. SeeAlso: AX=C000h,AX=C001h,AX=C002h,AX=D005h"S3VBE"
  7595. --------V-10C004-----------------------------
  7596. INT 10 - S3 SpeedUp v3.10+ - RESERVED FUNCTIONS
  7597.     AX = C004h-C0FFh
  7598. Return: AX = 5555h
  7599. SeeAlso: AX=C000h
  7600. --------A-10C1-------------------------------
  7601. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  7602.     AH = C1h
  7603.     ???
  7604. Return: ???
  7605. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  7606. --------A-10C2-------------------------------
  7607. INT 10 - CU Writer v1.4 - REVERSE TEXT
  7608.     AH = C2h
  7609.     ???
  7610. Return: ???
  7611. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  7612. --------A-10C3-------------------------------
  7613. INT 10 - CU Writer v1.4 - TEXT BAR
  7614.     AH = C3h
  7615.     ???
  7616. Return: ???
  7617. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  7618. --------A-10C4-------------------------------
  7619. INT 10 - CU Writer v1.4 - TEXT MENU
  7620.     AH = C4h
  7621.     ???
  7622. Return: ???
  7623. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  7624. --------V-10CB00-----------------------------
  7625. INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
  7626.     AX = CB00h
  7627. Note:    combined with AX=CB06h, this function permits the use of video mode
  7628.       13h together with the VGA's unchained mode
  7629. SeeAlso: AX=CB06h,AX=CBFFh
  7630. --------V-10CB01-----------------------------
  7631. INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
  7632.     AX = CB01h
  7633.     BX = offset of page 1
  7634. Return: nothing
  7635. Desc:    inform UNCHAIN of the location of video page 1 in video memory; the
  7636.       default is 0000h
  7637. SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
  7638. --------V-10CB02-----------------------------
  7639. INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
  7640.     AX = CB02h
  7641.     BX = offset of page 2
  7642. Return: nothing
  7643. Desc:    inform UNCHAIN of the location of video page 2 in video memory; the
  7644.       default is 3E80h (16000, for 320x200)
  7645. SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
  7646. --------V-10CB03-----------------------------
  7647. INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
  7648.     AX = CB03h
  7649.     BX = offset of page 3
  7650. Return: nothing
  7651. Desc:    inform UNCHAIN of the location of video page 3 in video memory; the
  7652.       default is 7D00h (32000, for 320x200)
  7653. SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
  7654. --------V-10CB04-----------------------------
  7655. INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
  7656.     AX = CB04h
  7657.     BX = offset of page 4
  7658. Return: nothing
  7659. Desc:    inform UNCHAIN of the location of video page 4 in video memory; the
  7660.       default is BB80h (48000, for 320x200)
  7661. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
  7662. --------V-10CB05-----------------------------
  7663. INT 10 - UNCHAIN - SAVE PALETTE
  7664.     AX = CB05h
  7665. Return: nothing
  7666. SeeAlso: AX=CB00h,AX=CB06h
  7667. --------V-10CB06-----------------------------
  7668. INT 10 - UNCHAIN - RESTORE VGA REGISTERS
  7669.     AX = CB06h
  7670. Return: nothing
  7671. SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
  7672. --------V-10CBFF-----------------------------
  7673. INT 10 - UNCHAIN - INSTALLATION CHECK
  7674.     AX = CBFFh
  7675. Return: AX = CCBBh if installed
  7676. Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
  7677.       development tools with Mode X video in the absence of a second
  7678.       monitor
  7679. SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
  7680. --------V-10CC00-----------------------------
  7681. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  7682.     AX = CC00h
  7683.     SI = magic value 0000h (if checking version)
  7684. Return: CX = product signature
  7685.         ABCDh UltraVision
  7686.         5546h ('UF') UltraFont
  7687.     AL = Ultravision extensions
  7688.         00h enabled
  7689.         FFh disabled
  7690.     AH = card designator
  7691.     BX:00F0h -> palette values (for compatibility with NEWFONT)
  7692.     DX = support for high resolution modes
  7693.         00h not active
  7694.         01h active
  7695.     SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  7696.         unchanged for versions <1.2
  7697. Note:    UltraFont is a simplified version of UltraVision for Toshiba;
  7698.       only the signature in CX and the status in AL will be returned
  7699. SeeAlso: AX=CC01h,AX=CC02h
  7700. --------V-10CC01-----------------------------
  7701. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  7702.     AX = CC01h
  7703. Return: nothing
  7704. Notes:    subsequent BIOS calls will be passed through to previous handler
  7705.     should be followed immediately by mode set to restore normal EGA/VGA
  7706.       state
  7707. SeeAlso: AX=CC02h
  7708. --------V-10CC02-----------------------------
  7709. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  7710.     AX = CC02h
  7711. Return: nothing
  7712. Note:    should be followed immediately by mode set to restore previous
  7713.       UltraVision state
  7714. SeeAlso: AX=CC01h
  7715. --------U-10CCAB-----------------------------
  7716. INT 10 - HiFont - INSTALLATION CHECK
  7717.     AX = CCABh
  7718. Return: AX = ABCCh
  7719. Program: HiFont is a 8x19 font driver for standard VGA by Solar Designer
  7720. --------V-10CD00-----------------------------
  7721. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  7722.     AX = CD00h
  7723.     CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  7724.     DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  7725. Return: nothing
  7726. Notes:    if palette locking is in effect for the current mode, the new colors
  7727.       will be displayed immediately; otherwise, the system reverts to the
  7728.       default palette
  7729.     palette table 0 is reserved for the default palette and cannot be set
  7730.     UltraVision always sets the border color to black
  7731. SeeAlso: AX=CD01h,AX=CD02h
  7732. --------V-10CD01-----------------------------
  7733. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  7734.     AX = CD01h
  7735.     CL = palette locking value
  7736.         00h none
  7737.         01h text modes only (02h,03h)
  7738.         FFh all modes (all standard color text and graphics modes)
  7739. Return: nothing
  7740. Notes:    intended for video modes with 16 or fewer colors
  7741. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  7742. --------V-10CD02-----------------------------
  7743. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  7744.     AX = CD02h
  7745. Return: CL = palette table number
  7746.     DS:DX -> 17-byte palette register list (see #0142)
  7747.     DS:SI -> current font names table (see #0143,#0144)
  7748. Note:    only the font names are valid on monochrome EGA systems
  7749. SeeAlso: AX=1009h,AX=CD00h
  7750.  
  7751. Format of UltraVision palette register list:
  7752. Offset    Size    Description    (Table 0142)
  7753.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  7754.  10h    BYTE    border color
  7755.  
  7756. Format of UltraVision v2+ current font names table:
  7757. Offset    Size    standard EGA    HiRes EGA    VGA    (Table 0143)
  7758.  00h  8 BYTEs    N/A        F19 font    F20 font
  7759.  08h  8 BYTEs    F14 font    F14 font    F14 font
  7760.  10h  8 BYTEs    N/A        F11 font    F10 font
  7761.  18h  8 BYTEs    F8 font        F8 font        F8 font
  7762.  
  7763. Format of UltraVision v1.x current font names table:
  7764. Offset    Size    HiRes EGA    (Table 0144)
  7765.  00h  8 BYTEs    F19/F14 font
  7766.  08h  8 BYTEs    F11/F8 font
  7767. --------V-10CD03-----------------------------
  7768. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  7769.     AX = CD03h
  7770. Return: CL = palette locking value
  7771.         00h none
  7772.         01h text modes only
  7773.         FFh all modes
  7774. SeeAlso: AX=CD01h
  7775. --------V-10CD04-----------------------------
  7776. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  7777.     AX = CD04h
  7778. Return: AL = mode number (see #0145)
  7779. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  7780.  
  7781. (Table 0145)
  7782. Values for UltraVision video mode number:
  7783.  11h    80x25
  7784.  12h    80x43, 80x50
  7785.  13h    80x34, 80x36
  7786.  14h    80x60, 80x63
  7787.  19h    94x25
  7788.  1Ah    94x43, 94x50
  7789.  1Bh    94x36
  7790.  1Ch    94x63
  7791.  21h    108x25
  7792.  22h    108x43, 108x50
  7793.  23h    107x34, 108x36
  7794.  24h    108x60, 108x63
  7795.  31h    120x25
  7796.  32h    120x43, 120x50
  7797.  33h    132x25
  7798.  34h    132x44, 132x50
  7799.  39h    120x36
  7800.  3Ah    120x63
  7801.  3Bh    132x36
  7802.  3Ch    132x60
  7803. Index:    video modes;UltraVision
  7804. --------V-10CD05-----------------------------
  7805. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  7806.     AX = CD05h
  7807.     CL = type
  7808.         00h line cursor
  7809.         FFh box cursor
  7810. Return: nothing
  7811. Note:    sets default cursor type for text-based programs
  7812. SeeAlso: AH=01h,AX=CD06h
  7813. --------V-10CD06-----------------------------
  7814. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  7815.     AX = CD06h
  7816. Return: CL = type
  7817.         00h line cursor
  7818.         FFh box cursor
  7819. SeeAlso: AH=03h,AX=CD05h
  7820. --------V-10CD07-----------------------------
  7821. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  7822.     AX = CD07h
  7823.     CL = hardware underline status (see #0146)
  7824.     BL = foreground color for normal text (FFh = current)
  7825.     BH = foreground color for bright text (FFh = current)
  7826. Return: CL = hardware underline status
  7827.     BL = current foreground color for normal text
  7828.     BH = current foreground color for bright text
  7829. Notes:    when underline or strikeout is enabled in color text modes, the
  7830.       specified colors will be assigned temporarily to colors 01h and 09h,
  7831.       allowing affected text to match non-underlined text.    The color
  7832.       remapping uses values from the current onscreen palette regardless
  7833.       of the palette locking status (see AX=CD01h)
  7834.     specify the standard colors (BL=01h,BH=09h) to enable underline or
  7835.       strikeout without color remapping
  7836. SeeAlso: AX=CD08h
  7837.  
  7838. (Table 0146)
  7839. Values for hardware underline status:
  7840.  00h    off (color systems only)
  7841.  01h    underline below characters
  7842.  02h    strike through characters
  7843. --------V-10CD08-----------------------------
  7844. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  7845.     AX = CD08h
  7846. Return: CL = hardware underline status (see #0146)
  7847.     BL = foreground color for normal text
  7848.     BH = foreground color for bright text
  7849. Note:    only CL is valid on monochrome EGA systems
  7850. SeeAlso: AX=CD07h
  7851. --------V-10CD10-----------------------------
  7852. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  7853.     AX = CD10h
  7854.     BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  7855.     CX = ABCDh load 9xN alternate font (v2+)
  7856.        else number of characters to load
  7857.         DX = character offset into font table
  7858.         DS:SI -> 8-byte ASCII font name
  7859.     ES:BP -> font definitions
  7860. Return: AX = FFFFh if invalid font parameters
  7861. Notes:    loads the designated characters into UltraVision's resident font area
  7862.     should be followed by a video mode set to reload character generator
  7863. SeeAlso: AX=1100h,AX=1103h
  7864. --------V-10CD-------------------------------
  7865. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  7866.     AH = CDh
  7867.     AL = text mode number (see #0145)
  7868. Return: AX = CDCDh if invalid mode
  7869. SeeAlso: AX=CD04h
  7870. --------A-10D0-------------------------------
  7871. INT 10 - CU Writer v1.4 - LOAD PICTURE
  7872.     AH = D0h
  7873.     ???
  7874. Return: ???
  7875. SeeAlso: AH=B0h"CU Writer",AH=C4h
  7876. --------V-10D0-------------------------------
  7877. INT 10 U - VIDEO - HP 100LX/200LX - SET ZOOM MODE
  7878.     AH = D0h
  7879.     AL = zoom mode
  7880.         02h 80x25 mono
  7881.         03h 80x25 color
  7882.         80h 64x18 mono
  7883.         81h 64x18 color
  7884.         82h 40x25 mono
  7885.         83h 40x25 color
  7886.         84h 40x16 mono
  7887.         85h 40x16 color
  7888. Return: nothing
  7889. Note:    zoom mode can only be changed within zoom modes of the same color
  7890.       scheme; if needed, set to mono/color with AH=00h,AL=02h/03h; with
  7891.       mono video modes AL=07h or AL=21h only 80x25 and 40x16 will work
  7892.     the current zoom mode is stored in the BIOS data area at 0040h:009Fh
  7893. SeeAlso: AH=D1h,AH=D4h
  7894. --------V-10D000-----------------------------
  7895. INT 10 - S3VBE/Core2.0 v3.00+ - INSTALLATION CHECK
  7896.     AX = D000h
  7897. Return: AX = FFFFh if installed
  7898.         BX = resident code segment
  7899.         DX = version (binary, DH = major, DL = minor)
  7900. Program: S3VBE/Core2.0 is a freeware TSR by Dietmar Meschede to provide
  7901.       VESA 2.0 services on S3-based video cards with VESA 1.2 BIOS
  7902. SeeAlso: AX=D001h"S3VBE",AX=D002h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"
  7903. --------V-10D001-----------------------------
  7904. INT 10 - S3VBE/Core2.0 v3.00+ - GET ACTIVE OPTIONS
  7905.     AX = D001h
  7906. Return: AX = FFFFh if supported
  7907.         BX = currently active options (see #0147)
  7908. SeeAlso: AX=D000h"S3VBE",AX=D002h"S3VBE"
  7909.  
  7910. Bitfields for S3VBE options:
  7911. Bit(s)    Description    (Table 0147)
  7912.  0    VESA VBE v2.0 extensions enabled
  7913.  1    linear frame buffer enabled
  7914.  2    low-resolution video mode support enabled
  7915.  8    never clear video memory during VBE mode set (v3.10+)
  7916. ---debug options---
  7917.  12    report VBE version 1.2 (v3.10+)
  7918.  13    always fail AX=4F0Ah (v3.10+)
  7919.  14    don't copy video mode list (v3.12+)
  7920. SeeAlso: #0141
  7921. --------V-10D002-----------------------------
  7922. INT 10 - S3VBE/Core2.0 v3.00+ - SET ACTIVE OPTIONS
  7923.     AX = D002h
  7924.     BX = new active options (see #0147)
  7925. Return: AX = FFFFh if supported
  7926. SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE"
  7927. --------V-10D003-----------------------------
  7928. INT 10 U - S3VBE/Core2.0 v3.10+ - GET VBE/Core CAPABILITIES
  7929.     AX = D003h
  7930. Return: AX = FFFFh if supported
  7931.         BX = capabilities
  7932.         bit 0: SpeedUp = activate/deactivate linear addressing at
  7933.             A0000h for VBE functions 04h/05h
  7934. SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE",AX=D004h"S3VBE",AX=D005h"S3VBE"
  7935. --------V-10D004-----------------------------
  7936. INT 10 U - S3VBE/Core2.0 v3.10+ - ACTIVATE SPEED-UP
  7937.     AX = D004h
  7938. Return: AX = FFFFh if supported
  7939.     BX = status
  7940.         0000h SpeedUp activated
  7941.         0001h SpeedUp not possible (wrong memory organization for mode)
  7942.         0002h SpeedUp not possible (linear frame buffer active)
  7943. Note:    called by S3 SpeedUp (see AX=C000h)
  7944. SeeAlso: AX=C000h"SpeedUp",AX=D000h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"
  7945. --------V-10D005-----------------------------
  7946. INT 10 U - S3VBE/Core2.0 v3.10+ - DEACTIVATE SPEED-UP
  7947.     AX = D005h
  7948. Return: AX = FFFFh if supported
  7949.     BX = status
  7950.         0000h SpeedUp deactivated
  7951.         0001h SpeedUp not possible (wrong memory organization for mode)
  7952.         0002h SpeedUp not possible (linear frame buffer active)
  7953. Notes:    called by S3 SpeedUp (see AX=C000h)
  7954.     functions 06h-FFh (e.g. AX=D006h-D0FFh) are considered reserved by
  7955.       v3.10+ and return AX=5555h
  7956. SeeAlso: AX=C000h"SpeedUp",AX=D000h"S3VBE",AX=D003h"S3VBE",AX=D004h"S3VBE"
  7957. --------V-10D1-------------------------------
  7958. INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
  7959.     AH = D1h
  7960.     AL = 01h
  7961. Return: ???
  7962. Note:    called by AH=D0h
  7963. SeeAlso: AH=D0h,AH=D4h
  7964. --------V-10D4-------------------------------
  7965. INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
  7966.     AH = D4h
  7967.     AL = 29h
  7968. Return: ???
  7969. Note:    called by AH=D0h
  7970. SeeAlso: AH=D0h,AH=D1h
  7971. --------V-10D5-------------------------------
  7972. INT 10 - Netroom SCRNCLK - ???
  7973.     AH = D5h
  7974.     ???
  7975. Return: ???
  7976. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  7977. --------t-10DAAD-----------------------------
  7978. INT 10 - TSRUNIT v1.10 - INSTALLATION CHECK
  7979.     AX = DAADh
  7980.     BX = check signature (different for each TSR)
  7981.     CX = 0000h
  7982. Return: CX = return signature (nonzero) if installed
  7983.         ES = program segment prefix
  7984. Program: TSRUNIT is a Turbo Pascal unit for creating TSRs by Nir Sofer
  7985. --------V-10DFA5-----------------------------
  7986. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  7987.     AX = DFA5h
  7988. Return: AX = BDBFh if supported
  7989.         ES:DI -> ??? data area
  7990.         BX = ES
  7991. SeeAlso: AX=BFA0h
  7992. --------V-10EE-------------------------------
  7993. INT 10 - VIDEO - IBM "Private" Function
  7994.     AH = EEh
  7995. SeeAlso: INT 13/AH=FFh"IBM"
  7996. --------V-10EF-------------------------------
  7997. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  7998.     AH = EFh
  7999. Return: DL = video adapter type
  8000.         00h original Hercules
  8001.         01h Hercules Plus     (port 03BAh reads x001xxxxx)
  8002.         02h Hercules InColor (port 03BAh reads x101xxxxx)
  8003.         FFh not a Hercules-compatible card (port 03BAh bit 7 not pulsing)
  8004.     DH = memory mode byte
  8005.         00h "half" mode
  8006.         01h "full" mode
  8007.         FFh not a Hercules-compatible card
  8008. Program: MSHERC.COM/QBHERC.COM is a support program for the Microsoft Quick
  8009.       languages which makes their graphics libraries compatible with a
  8010.       Hercules card by adding video modes 08h and 88h, and supporting
  8011.       text in the new graphics modes.
  8012. Notes:    while in mode 08h or 88h, INT 10 supports the Hercules card much like
  8013.       a CGA.
  8014.     MSHERC performs an installation check by setting DL=FFh and testing
  8015.       whether it has been changed on return, which causes it to reinstall
  8016.       itself when no HGC is present (or HGC emulation has temporarily been
  8017.       disabled); a better installation check would be to use DX=80FFh and
  8018.       check whether DX has been changed
  8019.     reportedly returns DH=00h on some not-entirely-Hercules-compatible
  8020.       cards
  8021. Index:    installation check;MSHERC
  8022. --------V-10F0-------------------------------
  8023. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  8024.     AH = F0h
  8025.     BL = register number
  8026.     BH = 00h
  8027.     DX = group index (see #0148)
  8028. Return: BL = data
  8029. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  8030.       compatibility box, and others
  8031. SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
  8032.  
  8033. (Table 0148)
  8034. Values for group index:
  8035.  Pointer/data chips
  8036.  00h    CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  8037.  08h    Sequencer (5 registers) 3C4h
  8038.  10h    Graphics Controller (9 registers) 3CEh
  8039.  18h    Attribute Controller (20 registers) 3C0h
  8040.  Single registers
  8041.  20h    Miscellaneous Output register 3C2h
  8042.  28h    Feature Control register (3BAh mono modes, 3DAh color modes)
  8043.  30h    Graphics 1 Position register 3CCh
  8044.  38h    Graphics 2 Position register 3CAh
  8045. --------V-10F1-------------------------------
  8046. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  8047.     AH = F1h
  8048.     DX = group index (see #0148)
  8049.         if single register:
  8050.         BL = value to write
  8051.         otherwise
  8052.         BL = register number
  8053.         BH = value to write
  8054. Return: BL = data
  8055. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  8056.       compatibility box, and others
  8057. SeeAlso: AX=7F05h,AH=F0h,AH=F3h
  8058. --------V-10F2-------------------------------
  8059. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  8060.     AH = F2h
  8061.     CH = starting register number
  8062.     CL = number of registers (>1)
  8063.     DX = group index (00h,08h,10h,18h) (see #0148)
  8064.     ES:BX -> buffer, CL bytes
  8065. Return: nothing
  8066. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  8067.       compatibility box, and others
  8068. SeeAlso: AH=F0h,AH=F3h
  8069. --------V-10F3-------------------------------
  8070. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  8071.     AH = F3h
  8072.     CH = starting register
  8073.     CL = number of registers (>1)
  8074.     DX = group index (00h,08h,10h,18h) (see #0148)
  8075.     ES:BX -> buffer, CL bytes
  8076. Return: nothing
  8077. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  8078.       compatibility box, and others
  8079. SeeAlso: AX=7F05h,AH=F1h,AH=F2h
  8080. --------V-10F4-------------------------------
  8081. INT 10 - EGA Register Interface Library - READ REGISTER SET
  8082.     AH = F4h
  8083.     CX = number of registers to read (>1)
  8084.     ES:BX -> table of register records (see #0149)
  8085. Return: register values in table filled in
  8086. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  8087.       compatibility box, and others
  8088. SeeAlso: AH=F0h,AH=F2h,AH=F5h
  8089.  
  8090. Format of EGA RIL entries in table of register records:
  8091. Offset    Size    Description    (Table 0149)
  8092.  00h    WORD    group index
  8093.         Pointer/data chips
  8094.            00h CRTC (3B4h mono modes, 3D4h color modes)
  8095.            08h Sequencer 3C4h
  8096.            10h Graphics Controller 3CEh
  8097.            18h Attribute Controller 3C0h
  8098.         Single registers
  8099.            20h Miscellaneous Output register 3C2h
  8100.            28h Feature Control register (3BAh mono modes, 3DAh color)
  8101.            30h Graphics 1 Position register 3CCh
  8102.            38h Graphics 2 Position register 3CAh
  8103.  02h    BYTE    register number (0 for single registers)
  8104.  03h    BYTE    register value
  8105. --------V-10F5-------------------------------
  8106. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  8107.     AH = F5h
  8108.     CX = number of registers to write (>1)
  8109.     ES:BX -> table of records (see #0149)
  8110. Return: nothing
  8111. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  8112.       compatibility box, and others
  8113. SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
  8114. --------V-10F6-------------------------------
  8115. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  8116.     AH = F6h
  8117. Return: nothing
  8118. Note:    provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  8119.       others
  8120. SeeAlso: AH=F7h
  8121. --------V-10F7-------------------------------
  8122. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  8123.     AH = F7h
  8124.     DX = port number
  8125.        Pointer/data chips
  8126.           00h CRTC (3B4h mono modes, 3D4h color modes)
  8127.           08h Sequencer 3C4h
  8128.           10h Graphics Controller 3CEh
  8129.           18h Attribute Controller 3C0h
  8130.        Single registers
  8131.           20h Miscellaneous Output register 3C2h
  8132.           28h Feature Control register (3BAh mono modes, 3DAh color modes)
  8133.           30h Graphics 1 Position register 3CCh
  8134.           38h Graphics 2 Position register 3CAh
  8135.     ES:BX -> table of one-byte entries, one byte to be written to each
  8136.          register
  8137. Return: nothing
  8138. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  8139.       compatibility box, and others
  8140. SeeAlso: AH=F6h
  8141. --------V-10FA--BX0000-----------------------
  8142. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  8143.     AH = FAh
  8144.     BX = 0000h
  8145. Return: BX = 0000h if RIL driver not present
  8146.     ES:BX -> EGA Register Interface version number, if present:
  8147.         byte 0 = major release number
  8148.         byte 1 = minor release number
  8149. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  8150.       compatibility box, and others
  8151. SeeAlso: AH=F6h,INT 2F/AX=BC00h
  8152. --------K-10FA-------------------------------
  8153. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  8154.     AH = FAh
  8155. Return: AX = 00FAh if installed
  8156.         ES = segment of resident code
  8157. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  8158.       Steiner
  8159. Index:    screen saver;FASTBUFF
  8160. --------V-10FE-------------------------------
  8161. INT 10 - TopView - GET SHADOW BUFFER
  8162.     AH = FEh
  8163.     ES:DI -> assumed video buffer
  8164.         B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  8165.           or A000h:0000h EGA/VGA graphics (RSIS environments only)
  8166. Return: ES:DI -> actual video buffer for calling process
  8167. Desc:    Determine the address of the virtual screen to which the program
  8168.       should write instead of the actual video memory; this permits
  8169.       programs to be multitasked without interfering with each other's
  8170.       output, and allows memory managers to move the video memory to
  8171.       permit larger programs to be loaded.
  8172. Notes:    if no multitasker or RSIS-compliant environment is installed, ES:DI is
  8173.       returned unchanged; RSIS is the Relocated Screen Interface
  8174.       Specification
  8175.     for display pages other than 0, use AH=05h and AH=0Fh to determine
  8176.       whether a particular page exists
  8177.     TopView requires a call to AH=FFh to notify it that the screen has
  8178.       changed; DESQview will check for changes itself until the first call
  8179.       to AH=FFh
  8180. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  8181. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  8182. --------V-10FF-------------------------------
  8183. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  8184.     AH = FFh
  8185.     CX = number of consecutive changed characters
  8186.     ES:DI -> first changed character in shadow buffer
  8187. Return: nothing
  8188. Notes:    avoid CX=0000h
  8189.     DESQview will discontinue the automatic screen updating initiated by
  8190.       AH=FEh after this call
  8191.     not supported (ignored) by DESQview/X 1.0x
  8192. SeeAlso: AH=93h,AH=FEh
  8193. --------E-10FF-------------------------------
  8194. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  8195.     AH = FFh
  8196.     AL = video mode (see #0150)
  8197. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  8198.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  8199. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  8200.  
  8201. (Table 0150)
  8202. Values for GO32 video mode number:
  8203.  00h    80x25 text
  8204.  01h    default text
  8205.  02h    CXxDX text
  8206.  03h    biggest text
  8207.  04h    320x200 graphics
  8208.  05h    default graphics
  8209.  06h    CXxDX graphics
  8210.  07h    biggest non-interlaced graphics
  8211.  08h    biggest graphics
  8212. Index:    video modes;GO32
  8213. --------V-10FF-------------------------------
  8214. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  8215.     AH = FFh
  8216.     AL = emulation
  8217.         43h ('C') CGA emulation
  8218.         45h ('E') EGA emulation
  8219.         4Dh ('M') Hercules emulation
  8220.         56h ('V') VGA emulation
  8221.     ES:DI -> signature string "Calamity"
  8222. Return: VGA switched to suggested mode
  8223. SeeAlso: AH=00h,AX=007Fh/BH=00h,AX=007Fh/BH=02h,AX=5F01h
  8224. --------R-10FF00-----------------------------
  8225. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  8226.     AX = FF00h
  8227. Return: BL = state
  8228.         00h not connected
  8229.         01h connected
  8230. SeeAlso: AX=FF01h,AX=FF02h
  8231. --------R-10FF01-----------------------------
  8232. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  8233.     AX = FF01h
  8234. Return: nothing
  8235. SeeAlso: AX=FF00h,AX=FF02h
  8236. --------R-10FF02-----------------------------
  8237. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  8238.     AX = FF02h
  8239. Return: ES:DI -> ASCIZ phone number
  8240. SeeAlso: AX=FF00h,AX=FF01h
  8241. --------C-11---------------------------------
  8242. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  8243. Desc:    automatically generated by the CPU when the AC flag is set, the current
  8244.       privilege level is 3, and a misaligned memory access (WORD not on an
  8245.       even address or DWORD not on a multiple of 4) is made
  8246. Note:    not all V86 monitors allow the AC flag to be set, such as Turbo
  8247.       Debugger 386
  8248. SeeAlso: INT 12"CPU"
  8249. --------B-11---------------------------------
  8250. INT 11 - BIOS - GET EQUIPMENT LIST
  8251. Return: (E)AX = BIOS equipment list word (see #0151,#2847 at INT 4B"Tandy")
  8252. Note:    since older BIOSes do not know of the existence of EAX, the high word
  8253.       of EAX should be cleared before this call if any of the high bits
  8254.       will be tested
  8255. SeeAlso: INT 4B"Tandy 2000"
  8256.  
  8257. Bitfields for BIOS equipment list:
  8258. Bit(s)    Description    (Table 0151)
  8259.  0    floppy disk(s) installed (number specified by bits 7-6)
  8260.  1    80x87 coprocessor installed
  8261.  3-2    number of 16K banks of RAM on motherboard (PC only)
  8262.     number of 64K banks of RAM on motherboard (XT only)
  8263.  2    pointing device installed (PS)
  8264.  3    unused (PS)
  8265.  5-4    initial video mode
  8266.     00 EGA, VGA, or PGA
  8267.     01 40x25 color
  8268.     10 80x25 color
  8269.     11 80x25 monochrome
  8270.  7-6    number of floppies installed less 1 (if bit 0 set)
  8271.  8    DMA support installed (PCjr, Tandy 1400LT)
  8272.     DMA support *not* installed (Tandy 1000's)
  8273.  11-9    number of serial ports installed
  8274.  12    game port installed
  8275.  13    serial printer attached (PCjr)
  8276.     internal modem installed (PC/Convertible)
  8277.  15-14    number of parallel ports installed
  8278. ---Compaq, Dell, and many other 386/486 machines--
  8279.  23    page tables set so that Weitek coprocessor addressable in real mode
  8280.  24    Weitek math coprocessor present
  8281. ---Compaq Systempro---
  8282.  25    internal DMA parallel port available
  8283.  26    IRQ for internal DMA parallel port (if bit 25 set)
  8284.     0 = IRQ5
  8285.     1 = IRQ7
  8286.  28-27    parallel port DMA channel
  8287.     00 DMA channel 0
  8288.     01 DMA channel 0 ???
  8289.     10 reserved
  8290.     11 DMA channel 3
  8291. SeeAlso: INT 12"BIOS",#2847 at INT 4B"Tandy 2000"
  8292. --------d-11----SI6A6A-----------------------
  8293. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  8294.     SI = 6A6Ah
  8295.     AH = command (see #0152)
  8296.     AL = SCSI Addressing (see #0153)
  8297. Return: CF clear if successful
  8298.         DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  8299.         AH = ??? for command 01h
  8300.     CF set on error
  8301.         AL = error code
  8302. SeeAlso: INT 21/AX=4402h"ASPI"
  8303.  
  8304. (Table 0152)
  8305. Values for SDLP command:
  8306.  00h    SDLP initialization
  8307.  01h    SDLP System Identify
  8308.  02h    simple read sectors
  8309.  03h    simple write sectors
  8310.  04h    simple verify sectors/seek to sector
  8311.  05h    get device size/type
  8312.  06h    ready unit
  8313.  07h    format unit
  8314.  08h    diagnostics
  8315.  09h    rewind
  8316.  0Ah    erase
  8317.  0Bh    write filemarks
  8318.  0Ch    space
  8319.  0Dh    prevent/allow media removal
  8320.  0Eh    load/unload media
  8321.  0Fh    reserved - returns good status
  8322.  10h    set block size
  8323.  11h    write setmark
  8324.  12h    set error level
  8325.  13h    get address of Request Sense Buffer
  8326.  14h    get SDLP error via Request Sense
  8327.  F0h    Vendor Unique Function (WD7000-FASST2 only)
  8328.  FDh    reset current SCSI HAC
  8329.  FEh    get/set current SCSI HAC
  8330.  FFh    execute SCSI command
  8331.  
  8332. Bitfields for SDLP SCSI addressing:
  8333. Bit(s)    Description    (Table 0153)
  8334.  7-6    Host Adapter
  8335.  5-3    SCSI Target ID
  8336.  2-0    SCSI Target LUN (logical unit number)
  8337. --------V-110225BX6900-----------------------
  8338. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  8339.     AX = 0225h
  8340.     BX = 6900h
  8341. Return: BL = 23h
  8342.     ES:DI -> ASCIZ "BLNKIT"
  8343. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  8344.       Inc.
  8345. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h
  8346. Index:    screen saver;Blank-It
  8347. --------V-110225BX6901-----------------------
  8348. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  8349.     AX = 0225h
  8350.     BX = 6901h
  8351.     CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  8352.          largest value is 59 minutes (FBACh or 64428)
  8353. Return: CF clear if successful
  8354.         DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  8355.         AH = ???
  8356.     CF set on error
  8357.         AL = error code
  8358. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6904h
  8359. Index:    screen saver;Blank-It
  8360. --------V-110225BX6902-----------------------
  8361. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  8362.     AX = 0225h
  8363.     BX = 6902h
  8364. Return: CF clear if successful
  8365.     CF set on error
  8366.         AL = error code
  8367. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6903h
  8368. Index:    screen saver;Blank-It
  8369. --------V-110225BX6903-----------------------
  8370. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  8371.     AX = 0225h
  8372.     BX = 6903h
  8373. Return: CF clear if successful
  8374.     CF set on error
  8375.         AL = error code
  8376. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6902h
  8377. Index:    screen saver;Blank-It
  8378. --------V-110225BX6904-----------------------
  8379. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  8380.     AX = 0225h
  8381.     BX = 6904h
  8382. Return: CF clear if successful
  8383.         BX = timeout (see AX=0225h/BX=6901h)
  8384.     CF set on error
  8385.         AL = error code
  8386. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6901h
  8387. Index:    screen saver;Blank-It
  8388. --------V-110225BX6905-----------------------
  8389. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  8390.     AX = 0225h
  8391.     BX = 6905h
  8392. Return: CF clear if successful
  8393.     CF set on error
  8394.         AL = error code
  8395. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6906h
  8396. Index:    screen saver;Blank-It
  8397. --------V-110225BX6906-----------------------
  8398. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  8399.     AX = 0225h
  8400.     BX = 6906h
  8401. Return: CF clear if successful
  8402.     CF set on error
  8403.         AL = error code
  8404. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  8405.       Inc.
  8406. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6905h
  8407. Index:    screen saver;Blank-It
  8408. --------V-110225BX6907-----------------------
  8409. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  8410.     AX = 0225h
  8411.     BX = 6907h
  8412. Return: CF clear if successful
  8413.     CF set on error
  8414.         AL = error code
  8415. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6908h
  8416. Index:    screen saver;Blank-It
  8417. --------V-110225BX6908-----------------------
  8418. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  8419.     AX = 0225h
  8420.     BX = 6908h
  8421. Return: CF clear if successful
  8422.     CF set on error
  8423.         AL = error code
  8424. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6907h
  8425. Index:    screen saver;Blank-It
  8426. --------V-110225BX6909-----------------------
  8427. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  8428.     AX = 0225h
  8429.     BX = 6909h
  8430.     CL = key scan code (see #0154)
  8431. Return: CF clear if successful
  8432.     CF set on error
  8433.         AL = error code
  8434. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  8435.       Inc.
  8436. SeeAlso: AX=0225h/BX=6900h
  8437. Index:    screen saver;Blank-It|hotkeys;Blank-It
  8438.  
  8439. (Table 0154)
  8440. Values for Blank-It hotkey scan code:
  8441.  00h    No hot key
  8442.  1Dh    Left CTRL
  8443.  2Ah    Left Shift
  8444.  36h    Right Shift
  8445.  57h    F11
  8446.  58h    F12
  8447. SeeAlso: #0005
  8448. --------G-1105D7-----------------------------
  8449. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  8450.     AX = 05D7h
  8451.     BX = product ID (0088h)
  8452. Note:    called by the BC++ IDE when an application calls
  8453.       INT 12/AX=05D7h/BX=05D7h
  8454. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  8455. Index:    installation check;Borland C++ IDE
  8456. --------F-1177-------------------------------
  8457. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  8458.     AH = 77h
  8459.     AL = subfunction
  8460.         01h request SFENGINE start
  8461.         Return: AX = 0001h
  8462.         02h check if SFENGINE started
  8463.         Return: AX = 0000h or 0001h
  8464.         03h request SFENGINE stop
  8465.         Return: AX = 0001h
  8466.         04h check if SFENGINE stopped
  8467.         Return: AX = 0000h or 0001h
  8468.         05h installation check
  8469.         Return: AX = 0001h
  8470.         06h uninstall???
  8471.         BX:DX -> return address for successful uninstall???
  8472.         Return: (at caller's address)
  8473.             AX = 0000h
  8474.         else
  8475.         Return: AX = FFFFh (invalid subfunction)
  8476. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  8477.         followed by internal data area???
  8478. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  8479. Index:    installation check;RainbowFAX|installation check;SFENGINE
  8480. Index:    uninstall;RainbowFAX|uninstall;SFENGINE
  8481. --------F-1178-------------------------------
  8482. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  8483.     AH = 78h
  8484.     AL = subfunction
  8485.         01h set ???
  8486.         BX = new state for ???
  8487.             0000h ???
  8488.             else ???
  8489.         Return: AX = 0001h
  8490.         02h set ???
  8491.         BX = ???
  8492.         CX = ???
  8493.         Return: AX = 0001h
  8494.         03h set ???
  8495.         BX = new state for ???
  8496.             0000h ???
  8497.             else ???
  8498.         Return: AX = 0001h
  8499.         else
  8500.         Return: AX = FFFFh (invalid subfunction)
  8501. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  8502. --------F-1179-------------------------------
  8503. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  8504.     AH = 79h
  8505.     AL = subfunction
  8506.         01h set ??? flag
  8507.         Return: AX = previous state (0000h already set, 0001h clear)
  8508.         02h clear ??? flag (refer to subfunc 01h)
  8509.         Return: AX = 0001h
  8510.         03h set ??? flag (different from subfn 02h or 04h)
  8511.         Return: AX = 0001h
  8512.         04h clear ??? flag (different from subfn 02h or 03h)
  8513.         Return: AX = 0001h
  8514.         else
  8515.         Return: AX = FFFFh (invalid subfunction)
  8516. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  8517. --------F-117A-------------------------------
  8518. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  8519.     AH = 7Ah
  8520.     AL = subfunction
  8521.         01h set ??? flag
  8522.         Return: AX = previous state (0000h already set, 0001h clear)
  8523.         02h clear ??? flag
  8524.         Return: AX = 0001h
  8525.         03h set ??? flag (different from subfn 02h)
  8526.         Return: AX = 0001h
  8527.         else
  8528.         Return: AX = FFFFh (invalid subfunction)
  8529. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  8530. --------F-117C01-----------------------------
  8531. INT 11 - RainbowFAX v1.3 - SFENGINE API - SET ??? FLAG
  8532.     AX = 7C01h
  8533. Return: AX = 0001h
  8534. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C02h,AX=7C03h
  8535. --------F-117C02-----------------------------
  8536. INT 11 - RainbowFAX v1.3 - SFENGINE API - CLEAR ??? FLAG
  8537.     AX = 7C02h
  8538. Return: AX = 0001h
  8539. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C01h,AX=7C03h
  8540. --------F-117C03-----------------------------
  8541. INT 11 - RainbowFAX v1.3 - SFENGINE API - UNSUPPORTED FUNCTIONS
  8542.     AX = 7C03h-7CFFh
  8543. Return: AX = FFFFh
  8544. SeeAlso: AH=77h,AX=7C01h,AX=7C02h
  8545. --------S-11BC--DX1954-----------------------
  8546. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  8547.     AH = BCh
  8548.     DX = 1954h
  8549. Return: AX = 1954h
  8550.     ES:DX -> entry point of driver (instead of INT 14)
  8551. SeeAlso: INT 14/AH=04h"FOSSIL"
  8552. --------d-11FF--SI6A6A-----------------------
  8553. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  8554.     AH = FFh
  8555.     SI = 6A6Ah
  8556.     AL = SCSI Addressing (see #0155)
  8557.     CX = bytes of data to be transmitted (max FFF0h)
  8558.     DH = 00h
  8559.     DL = length of SCSI Command Descriptor Block
  8560.     DS:DI -> SCSI Command Descriptor Block
  8561.     ES:BX -> data buffer
  8562. Return: CF set on error
  8563.         AL = error code
  8564.     CF clear if successful
  8565. Note:    because of busmaster operations with WD7000FASST avoid accessing
  8566.       video memory directly; check 386 memory manager for VDS support.
  8567.       The WD7000XTAT works with programmed IO and does not have this
  8568.       limitation.
  8569. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  8570.  
  8571. Bitfields for SDLP SCSI addressing:
  8572. Bit(s)    Description    (Table 0155)
  8573.  2-0    SCSI Target LUN (logical unit number)
  8574.  5-3    SCSI Target ID
  8575.  7    write flag, set for write operations, clear otherwise
  8576. --------T-11FFFECXFFFE-----------------------
  8577. INT 11 - BACK&FORTH (before v1.62) API
  8578.     AX = FFFEh
  8579.     CX = FFFEh
  8580.     BX = function
  8581.         00h installation check
  8582.         Return: AX = installation state
  8583.                 0001h BNFHIGH and BNFLOW both loaded
  8584.                 0003h only BNFHIGH loaded
  8585.                 else neither loaded
  8586.         01h ???
  8587.         Return: DX:AX -> ???
  8588.         02h ???
  8589.         03h ???
  8590.         04h ???
  8591.         05h ??? switches current PSP segment and stack if BNFLOW has not
  8592.             yet announced itself installed
  8593.         06h ???
  8594.         Return: AX = ???
  8595. SeeAlso: INT 12/AX=FFFEh
  8596. Index:    installation check;BACK&FORTH
  8597. --------B-12---------------------------------
  8598. INT 12 - BIOS - GET MEMORY SIZE
  8599. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  8600. Note:    this call returns the contents of the word at 0040h:0013h; in PC and
  8601.       XT, this value is set from the switches on the motherboard
  8602. SeeAlso: INT 11"BIOS",INT 2F/AX=4A06h,INT 4C"Tandy 2000"
  8603. --------C-12---------------------------------
  8604. INT 12 - CPU-generated (Pentium) - MACHINE CHECK EXCEPTION
  8605. Notes:    Intel documents this interrupt as CPU model-dependent; for current
  8606.       Pentium processors, the reason for the machine check exception may
  8607.       be read from model-specific registers 00h and 01h (described, for
  8608.       example, in Christian Ludloff's 4P package)
  8609.     this exception is enabled by bit 6 of CR4
  8610. SeeAlso: INT 11"CPU",MSR 00000000h,MSR 00000001h
  8611. --------K-12----CX1806-----------------------
  8612. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  8613.     CX = 1806h
  8614. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  8615.     CX = 1960h if installed
  8616. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  8617.       accented characters and box drawing on standard QWERTY keyboards; it
  8618.       also provides break-to-DOS and screen blanking capabilities
  8619. SeeAlso: INT 14/AX=AA01h
  8620. Index:    screen saver;KEYBUI
  8621. --------d-12----CX1807-----------------------
  8622. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  8623.     CX = 1807h
  8624. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  8625.     CX = 1961h if installed
  8626. Program: PARKER is an optionally-resident hard disk parking program by Johan
  8627.       Zwiekhorst
  8628. --------G-1205D7BX05D7-----------------------
  8629. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  8630.     AX = 05D7h (1495d)
  8631.     BX = 05D7h
  8632. Note:    the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  8633. SeeAlso: INT 11/AX=05D7h
  8634. --------v-124350BX4920-----------------------
  8635. INT 12 C - CPI-standard virus - "FRIEND" CHECK
  8636.     AX = 4350h
  8637.     BX = 4920h
  8638.     CX = AB46h
  8639.     DX = 554Eh
  8640. Return: if friendly (not to be infected)
  8641.         CX:DX -> ASCIZ identity code (changes yearly)
  8642. SeeAlso: INT 13/AX=EC00h"VIRUS",INT 13/AX=5001h,INT 21/AX=0B56h
  8643. --------T-12FFFECXFFFE-----------------------
  8644. INT 12 - Back&Forth v1.62+ - API
  8645.     AX = FFFEh
  8646.     CX = FFFEh
  8647.     BX = function
  8648.         00h installation check
  8649.         Return: AX = 0001h installed
  8650.                  else  not loaded
  8651.         01h (reserved)
  8652.         02h build program ID list (shareware Back&Forth)
  8653.         ES:DI -> buffer of at least 100 bytes, to be filled with words
  8654.         Return: AX = number of programs defined
  8655.             ES:DI buffer filled with AX words
  8656.         02h get memory statistics (Back&Forth Professional)
  8657.         Return: AX = available swap memory, KBytes
  8658.             BX = maximum task size, KBytes
  8659.             DX = fixed overhead per task, excluding video/macro
  8660.                   storage
  8661.         03h switch to specified task (task need not be open yet)
  8662.         DX = two-letter program ID
  8663.         Return: AX = status
  8664.                 0000h if task undefined
  8665.                 0001h task switch will occur when safe
  8666.         04h (reserved)
  8667.         05h (reserved)
  8668.         06h get version (documented only for Back&Forth Professional)
  8669.         Return: AX = version * 100 (v1.71 = 00ABh)
  8670.         07h spawn program (Back&Forth Professional only???)
  8671.         ES:DI -> BF_SPAWN record (see #0157)
  8672.         Return: AX = status
  8673.                 0000h if no task handles free
  8674.                 0001h spawn will occur when safe
  8675.         08h get open tasks (documented only for Back&Forth Professional)
  8676.         ES:DI -> task info buffer (see #0156,#0158)
  8677.         Return: AX = number of open tasks (max 20)
  8678.         Note:    the supplied buffer must be large enough to hold 21
  8679.               task entries
  8680.         09h (reserved)
  8681.         ---Back&Forth Professional---
  8682.         0Ah get active clipboard filename
  8683.         Return: DX:AX -> ASCIZ clipboard filename
  8684.         0Bh get active task number
  8685.         AX = active task number (00h-13h)
  8686.         BX = number of tasks allocated
  8687.         DX = maximum number of tasks
  8688.         0Ch (reserved)
  8689.         0Dh (reserved)
  8690.         0Eh (reserved)
  8691.         0Fh stuff string into keyboard buffer
  8692.         ES:DI -> ASCIZ string to be stuffed
  8693.         Return: nothing
  8694.         10h check if in graphics mode
  8695.         Return: AX = state
  8696.                 0000h color text mode
  8697.                 0004h mono text mode
  8698.                 FFFFh graphics mode
  8699.         11h get Back&Forth Professional user number
  8700.         Return: AX = user number (0000h-00FFh)
  8701.         12h switch task by task number
  8702.         DX = task number
  8703.         Return: AX = status
  8704.                 0000h attempted to switch to active task
  8705.                 0001h task switch will occur when safe
  8706.                 FFFFh invalid task number
  8707.         13h delete (kill) task
  8708.         DX = task number
  8709.         Return: AX = status
  8710.                 0000h attempted to delete the active task
  8711.                 0001h successfully deleted
  8712.                 FFFFh invalid task number
  8713.         Note:    the active task number will change if the deleted task
  8714.               was lower in the task list than the active task
  8715.         14h get next available task handle
  8716.         Return:    AX = next available task handle
  8717.                 FFFFh if task table is full
  8718. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  8719. SeeAlso: INT 11/AX=FFFEh
  8720. Index:    installation check;BACK&FORTH
  8721.  
  8722. Format of Back&Forth task info buffer:
  8723. Offset    Size    Description    (Table 0156)
  8724.  00h 21 BYTEs    ASCIZ task name
  8725.  15h    BYTE    hotkey shift state (as for INT 16/AH=02h)
  8726.  16h    WORD    hotkey scan code (see also #0005)
  8727.  18h    WORD    program ID
  8728. Index:    hotkeys;Back&Forth
  8729. SeeAlso: #0157,#0158
  8730.  
  8731. Format of Back&Forth Professional BF_SPAWN record:
  8732. Offset    Size    Description    (Table 0157)
  8733.  00h 21 BYTEs    task description
  8734.  15h    BYTE    flag: disable hotkeys
  8735.  16h    WORD    environment size in bytes
  8736.  18h    BYTE    hotkey shift flags
  8737.  19h    WORD    hotkey scancode
  8738.  1Bh    WORD    maximum number of EMS pages
  8739.  1Dh    WORD    required memory in KBytes
  8740.  1Fh  3 BYTEs    DESQview-style two-letter program ID
  8741.  22h 13 BYTEs    base name of program to be run (no path or extension)
  8742.  2Fh 66 BYTEs    directory from which to start program
  8743.  71h 66 BYTEs    initial current directory for program
  8744. SeeAlso: #0156,#0158
  8745.  
  8746. Format of Back&Forth Professional BF_TASK record:
  8747. Offset    Size    Description    (Table 0158)
  8748.  00h    DWORD    Unix-style task start time (seconds since 1/1/1970)
  8749.  04h 21 BYTEs    task description
  8750.  19h    DWORD    elapsed time in task (seconds)
  8751.  1Dh    WORD    task ID
  8752.  1Fh    BYTE    task hotkey keyboard flags
  8753.  20h    WORD    task hotkey scan code (see also #0005)
  8754.  22h    DWORD    time task was suspended/exited
  8755.  26h    WORD    task handle
  8756. SeeAlso: #0156,#0157
  8757. --------!---Section--------------------------
  8758.